- EHCache 2,5
- timeToIdleSeconds = "1800" (30 minuti), quindi mi aspetto elemento di espellere dopo 30 minuti di inattività
- 30 minuti dopo l'ultimo utilizzo Element Posso ancora vedere che la cache è piena di elementi
- Forzare GC e fare lo heap dump show, quegli elementi sono ancora nella memoria
- getSize() restituisce il numero positivo e getKeys() restituisce le chiavi come previsto (getKeys() non non verificare scadenza elementi)
- ottenendo un elemento particolare, sebbene produca un valore NULL, il che significa che è scaduto.
- getKeysWithExpiryCheck() mostra, che cache è vuota e tutti gli elementi exired e sgomberato
forzatura GC e tenendo mucchio spettacoli ribaltabili, che gli elementi raccolti dalla memoria.EHCache non rimuove elemento dalla memoria sul sfratto
maxEntriesLocalHeap="10000" eternal="false" statistics="true" overflowToDisk="false" timeToIdleSeconds="1800" memoryStoreEvictionPolicy="LFU" transactionalMode="off"
Dall'alto vedo, che EHCache fare impressione, che gli elementi sono scaduti che può portare mia logica codice per rinfrescare loro ma sotto la memoria cofano è sino inquinati da elementi fino chiamo particolare elemento o getKeysWithExpiryCheck(), che non mi consente di utilizzare ehcache come gestore di memoria efficace
Come rendere l'elemento GS dopo il timeToIdleSeconds time? Voglio che la memoria venga pulita se gli elementi non vengono utilizzati sopra timeToIdleSeconds.
Michael