Проблема httpcache
У меня есть репозиторий, который тянет как из БД, так и иногда из кеша.
Чтобы реализовать это, я создал интерфейс ICacheWrapper, который позволяет репо использовать HttpRuntime.Cache, AppFabric, что угодно. Конкретные классы ICacheWrapper обычно принимают кеш в своем конструкторе следующим образом: new HttpCacheWrapper(HttpRuntime.Cache)
Конструктор репозитория получает ссылку на оболочку кэша, например:
myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache));
Если я создаю 2 репозитория, копируется ли кэш? Я думаю, что нет, но наши проблемы с производительностью указывают на обратное. Я что-то здесь пропустил?
Спасибо за любую помощь!
1 ответ
Что вы видите? Что делает HttpCacheWrapper с HttpRuntime.Cache, который он передает?
Я подозреваю, что вместо этого вы видите политику кэширования, которая удерживает вещи слишком долго для скорости кеширования. Как сказал Раймонд Чен, "неправильная политика кэширования неотличима от утечки памяти".
Я бы выделил это, пытаясь протестировать только с одним репо, используя вашу политику. Посмотрите, появляются ли проблемы с производительностью.
Если нет, то создайте 2-й репозиторий и внимательно следите за использованием памяти.