我在使用Hibernate二级缓存时收到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
有人能说清楚这可能意味着什么吗?根据统计数据显示,我的二级缓存似乎正在运行......
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 :(得分:2)
此输出由DiskStore生成,默认情况下在EhCache中启用IIRC。基本上,EhCache将缓存的数据从内存溢出到磁盘。如果要禁用此功能,请将overflowToDisk
属性设置为flase
:
<cache name="..." overflowToDisk="false"
哦 - 有人也可以确认'averageGetTime'是以毫秒为单位而不是秒吗?
确认,毫秒。虽然JavaDoc of Statistics.getAverageGetTime()
稍微令人困惑:
[...]因为ehcache支持JDK1.4.2,所以每次获取时间都使用System.currentTimeMilis,而不是纳秒。因此准确性有限。
我在LiveCacheStatisticsImpl
中找到了以下代码:
public float getAverageGetTimeMillis() {
//...
return (float) totalGetTimeTakenMillis.get() / hitCount;
}