Ehcache + Hibernate日志输出

时间:2012-04-11 16:25:05

标签: java hibernate ehcache

我在使用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 ]

任何帮助将不胜感激..

西蒙

1 个答案:

答案 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;
}