2012-08-08 12 views
7

Sto cercando nelle statistiche EHCache, vedo queste cifre:Qual è la differenza tra "cache misses" e "in memory cache misses" in Ehcache?

CacheMisses: 75977
CacheHits: 38151

InMemoryCacheMisses: 4843
InMemoryCacheHits: 38151

"di memoria "è l'unico negozio - non fuori-heap e senza memoria su disco (overflowToDisk="false", diskPersistent="false"). Quindi cosa significano questi due? Mi aspetterei che fossero uguali (i colpi sono uguali), ma le mancate differenze sono molto diverse.

risposta

0

Credo che stiate usando ehcache 2.5+. Se hai cacheconfiguration con diskpersistance su true (anche se overflowtodisk è falso), scrive sul disco. Quindi potrebbero esserci anche diskhits? È possibile visualizzarli nella statistica. hai diskpersistance come vero? Si prega di inviare la configurazione della cache

+0

entrambi sono falsi. zero disk hits e miss – Bozho

1

Avete qualche null -valued Element s nella cache? (Ehcache consente di memorizzare Element s con i valori null, ma non sono sicuro che ci siano dei vincoli a riguardo).

Guardando il codice per Cache.searchInStoreWithStats(Object key) nella versione 2.5.3, sembra che ci sia un bug c'è:

  • Il test per determinare se per incrementare inMemoryMisses utilizza un containsKey() derivato,
  • mentre il banco di prova per incremento di cacheMisses null-checks rispetto al risultato di una derivata get().

Così, ogni volta che si cerca una chiave che esiste nella InMemoryStore, ma ha un valore null, si incrementerà cacheMisses ma non inMemoryMisses.

Quindi, potrei essere completamente fuori, ma ha un buon odore per me. Cosa ne pensi?

Modifica: Mi sono reso conto che la mia interpretazione era errata: l'elemento non può essere nullo, (ma il suo 'valore' può essere nullo). Lascerò questa risposta qui in ogni caso in caso innesca altre idee

+0

Penso di aver notato lo stesso problema un paio di anni fa, e non l'ho segnalato. Più ingannare me! – laher

+0

nota: tale metodo è ancora invariato nel trunk: http://svn.terracotta.org/svn/ehcache/trunk/ehcache/ehcache-core/src/main/java/net/sf/ehcache/Cache.java – laher

+0

buon punto. Non penso di avere nulla, ma controllerò. Ho già segnalato la discrepanza come un problema, in attesa di risposta – Bozho

Problemi correlati