Pergunta

Eu tenho um repositório que puxa de ambos os dB e às vezes um cache.

Para implementar isso, criei uma interface que o ICachewrapper permite que o repo use httpruntime.cache, Appfabric, qualquer que seja. As classes de concreto do Icachewrapper costumam tomar o cache em seu construtor como So: New Httpcachewapper (httpruntime.cache)

O construtor do repo faz uma referência a um invólucro de cache como assim:

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

Se eu criar 2 repositórios, o cache é copiado profundo? Eu pensaria que não, mas nossos problemas de desempenho indicam o contrário. Eu perdi algo aqui?

Obrigado por qualquer ajuda!

Foi útil?

Solução

O que você está vendo? O que o httpcachewrapper faz com o httpruntime.cache que ele é aprovado?

Eu suspeito que o que você está vendo é uma política de cache que se apega a coisas por muito tempo pela taxa em que as coisas estão sendo armazenadas em cache. Como Raymond Chen disse, "a política de cache incorreta é indistinguível de um vazamento de memória".

A maneira como eu isolaria isso é tentar testar com apenas um repositório usando a política que você possui. Veja se seus problemas de desempenho aparecem.

Caso contrário, vá em frente e crie o segundo repositório e monitore de perto o uso da memória.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top