与使用RAM磁盘的Ehcache Community Edition的Diskstore相比,Enterprise Ehcache的BigMemory的性能如何?
如果我们在对象堆中使用了所有RAM,那么Big Memory允许缓存通过减少GC的开销来在对象堆外部使用其他类型的内存存储。序列化和反序列化确实发生在放置和从这个堆外存储中获取。
类似地,Diskstore也是将序列化对象存储在磁盘上的二级缓存。
在上面的链接中提到堆外存储比Diskstore快两个数量级。如果我将Diskstore配置为在RAM Disk中存储数据会怎样? BigMemory还会有明显的性能优势吗?
BigMemory是否还有其他一些优化措施?有没有人遇到任何比较这两种方法的实验?
答案 0 :(得分:6)
以下摘录了terracotta forum上对此问题的回答。
“我期望您在开源(社区版)Ehcache磁盘存储中遇到的三个大问题是:首先在开源中只将值存储在磁盘上 - 键和元数据将键映射到值仍然存储在堆中(对于BigMemory来说不是这样)。这意味着堆仍然是缓存大小的限制因素。其次,开源磁盘存储设计为由单个(传统旋转磁盘)支持 - 尽管有些人现在使用SSD驱动器),这意味着后端与Enterprise BigMemory的并发性较少(特别是在写入方面),因为瓶颈预计在硬件级别。第三,开源磁盘存储器执行的序列化空间效率较低所以序列化的值有更大的开销。“