Question

J'ai un référentiel qui tire à la fois db, et parfois un cache.

Pour mettre en œuvre, je créé un ICacheWrapper d'interface qui permet l'utilisation des prises en pension HttpRuntime.Cache, AppFabric, peu importe. classes concrètes de la ICacheWrapper prennent généralement le cache dans leur constructeur comme ceci: nouveau HttpCacheWrapper (HttpRuntime.Cache)

Le constructeur de la pension prend une référence à une enveloppe de cache comme ceci:

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

Si je crée 2 prises en pension, ne le cache se profond copié? Je ne pense pas, mais nos problèmes de performance indiquent le contraire. Ai-je raté quelque chose?

Merci pour toute aide!

Était-ce utile?

La solution

Que voyez-vous? Qu'est-ce HttpCacheWrapper faire avec le HttpRuntime.Cache il est transmis?

Je suppose que ce que vous voyez est plutôt une politique de cache qui se tient sur les choses trop longtemps pour que le taux que les choses sont mises en cache. Comme Raymond Chen a dit, « la politique de cache incorrecte ne se distingue pas d'une fuite de mémoire. »

La façon dont je voudrais isoler est d'essayer de tester avec un seul repo en utilisant la politique que vous avez. Si vos problèmes de performance apparaissent.

Sinon, aller de l'avant et de créer le 2ème repo et suivre de près l'utilisation de la mémoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top