2012-04-11 19 views
1

Hibernate 2nd Levelキャッシュで使用しているときにEhキャッシュのログ出力を受信して​​います。これは出力とその意味を理解していません。ログにたくさん印刷されています。Ehcache + Hibernate Log Output

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 

これは何を意味するのでしょうか?私のセカンドレベルキャッシュは統計の印刷に応じて、作業をしているように見える...

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 ] 

任意の助けいただければ幸いです。..

サイモン

+0

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

答えて

2

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

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

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

確認済み、ミリ秒。 JavaDoc of Statistics.getAverageGetTime()はわずか紛らわしいですが:

[...] ehcacheをサポートJDK1.4.2ので、それぞれの時間ではなくナノ秒よりも、System.currentTimeMilisを使用し得ます。したがって、精度は限定されている。

私はLiveCacheStatisticsImplで次のコードが見つかりました:

public float getAverageGetTimeMillis() { 
    //... 
    return (float) totalGetTimeTakenMillis.get()/hitCount; 
} 
関連する問題