Проблема httpcache

У меня есть репозиторий, который тянет как из БД, так и иногда из кеша.

Чтобы реализовать это, я создал интерфейс ICacheWrapper, который позволяет репо использовать HttpRuntime.Cache, AppFabric, что угодно. Конкретные классы ICacheWrapper обычно принимают кеш в своем конструкторе следующим образом: new HttpCacheWrapper(HttpRuntime.Cache)

Конструктор репозитория получает ссылку на оболочку кэша, например:

myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache));

Если я создаю 2 репозитория, копируется ли кэш? Я думаю, что нет, но наши проблемы с производительностью указывают на обратное. Я что-то здесь пропустил?

Спасибо за любую помощь!

1 ответ

Решение

Что вы видите? Что делает HttpCacheWrapper с HttpRuntime.Cache, который он передает?

Я подозреваю, что вместо этого вы видите политику кэширования, которая удерживает вещи слишком долго для скорости кеширования. Как сказал Раймонд Чен, "неправильная политика кэширования неотличима от утечки памяти".

Я бы выделил это, пытаясь протестировать только с одним репо, используя вашу политику. Посмотрите, появляются ли проблемы с производительностью.

Если нет, то создайте 2-й репозиторий и внимательно следите за использованием памяти.

Другие вопросы по тегам