Вопрос

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

Для реализации этого я создал интерфейс ICACHEWRAPPER, который позволяет REPO использовать HTTPRUNTIME.cache, AppFabric, что угодно. Бетонные классы ICACHEWRAPPER обычно принимают кеш в своем конструкторе, как так: новый httpcachewrapper (httpruntime.cache)

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

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

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

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

Это было полезно?

Решение

Что вы видите? Что делает httpCacheWrapper с httpruntime.cache.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top