Memory management ehcache是否使用maxBytesLocalHeap保留(分配)堆内存集?

Memory management ehcache是否使用maxBytesLocalHeap保留(分配)堆内存集?,memory-management,jvm,ehcache,Memory Management,Jvm,Ehcache,我用的是ehache v。2.8 但我不确定我是否正确理解了有关为缓存保留内存的文档 如果在ehcache.xml中设置内存,如下所示: <ehcache maxBytesLocalHeap="256M"> (...) </ehcache> (...) ..它实际上是在开始时分配的,并且该缓存将使用正好256MB的堆,还是这仅仅意味着(如果该属性按原样命名,则应如此命名)此缓存最多可以占用256MB的堆?这意味着此缓存将尽最大努力包含小于等于256MB的用户数据

我用的是ehache v。2.8

但我不确定我是否正确理解了有关为缓存保留内存的文档

如果在
ehcache.xml
中设置内存,如下所示:

<ehcache maxBytesLocalHeap="256M">

(...)

</ehcache>

(...)

..它实际上是在开始时分配的,并且该缓存将使用正好256MB的堆,还是这仅仅意味着(如果该属性按原样命名,则应如此命名)此缓存最多可以占用256MB的堆?

这意味着此缓存将尽最大努力包含小于等于256MB的用户数据

但请注意,由于内部数据结构的原因,缓存的实际内存占用可能会稍大一些


此外,如果缓存满负荷运行,则在逐出时可能会临时超出大小。

谢谢,我也提出了这个方案,但我需要外部确认。;)顺便说一句:我是否正确地理解了ehcache没有预分配,因为:a)它不会从中受益….,b)在使用垃圾收集器的JVM中,它实际上不可能实现?在JVM的上下文中预分配确实没有意义。每次有一个条目添加到缓存中时,它都会强制ehcache“释放”预分配的部分(不过这是另一个问题)。因此,这将意味着更多的管理,从而产生更多的开销。