Domanda

Ho un repository che tira sia da db, e, talvolta, una cache.

Per implementare questo, ho creato un ICacheWrapper interfaccia che permette l'uso di repo HttpRuntime.Cache, AppFabric, qualsiasi cosa. classi concrete della ICacheWrapper solito prendono la cache nella loro costruttore in questo modo: nuova HttpCacheWrapper (HttpRuntime.Cache)

Il costruttore di pronti contro termine ha un riferimento a un involucro di cache in questo modo:

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

Se creo 2 pronti contro termine, non la cache ottiene profonda copiato? Penserei no, ma i nostri problemi di prestazioni indicare il contrario. Ho perso qualcosa qui?

Grazie per qualsiasi aiuto!

È stato utile?

Soluzione

Cosa vede? Che cosa significa HttpCacheWrapper fare con il HttpRuntime.Cache esso viene passato?

ho il sospetto che quello che stai vedendo, invece, è una politica di cache che tiene sulle cose troppo a lungo per la velocità con cui le cose vengono memorizzati nella cache. Come ha detto Raymond Chen, "la politica della cache non corretta è indistinguibile da una perdita di memoria."

Il modo in cui vorrei isolare questo è cercare di test con un solo repo utilizzando il criterio che avete. Vedere se appaiono i vostri problemi di prestazioni.

In caso contrario, andare avanti e creare il 2 ° repo e monitorare attentamente l'utilizzo della memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top