1

Hibernate 2nd Levelキャッシュで使用すると、Eh-cacheログ出力を受け取ります-出力とその意味を理解していません。ログにたくさん印刷されています。

 DEBUG [net.sf.ehcache.store.disk.Segment] put added 0 on heap
 DEBUG [net.sf.ehcache.store.disk.Segment] put updated, deleted 0 on heap

誰かがこれが何を意味するのかについていくつかの光を当てることができますか?統計の印刷によると、私の第2レベルのキャッシュは機能しているようです...

INFO [com.atlaschase.falcon.commands.domain.AircraftCommandResolutionService] [  name = aircraftCache cacheHits = 824 onDiskHits = 0 offHeapHits = 0 inMemoryHits = 824 misses = 182 onDiskMisses = 182 offHeapMisses = 0 inMemoryMisses = 182 size = 91 averageGetTime = 1.0745527 evictionCount = 0 ]

どんな助けでもいただければ幸いです。

サイモン

4

1 に答える 1

2

この出力はDiskStoreによって生成され、IIRCはEhCacheでデフォルトで有効になっています。基本的に、EhCacheはキャッシュされたデータをメモリからディスクにオーバーフローさせます。この機能を無効にする場合は、overflowToDiskプロパティをflase次のように設定します。

<cache name="..." overflowToDisk="false"

ああ-誰かが「averageGetTime」が秒ではなくミリ秒であることを確認することもできますか?

確認済み、ミリ秒。のJavaDocStatistics.getAverageGetTime()少し紛らわしいですが、次のようになります。

[...] ehcacheはJDK1.4.2をサポートしているため、各取得時間はナノ秒ではなくSystem.currentTimeMilisを使用します。したがって、精度は制限されます。

私は次のコードを見つけましたLiveCacheStatisticsImpl

public float getAverageGetTimeMillis() {
    //...
    return (float) totalGetTimeTakenMillis.get() / hitCount;
}
于 2012-04-11T16:29:37.083 に答える