java - EhCache BigMemory 与 RAM 磁盘上的 Diskstore

标签 java performance caching ehcache ramdisk

Enterprise Ehcache的BigMemory与使用RAM盘的Ehcache Community Edition的Diskstore相比性能如何?

Big Memory通过减少 GC 的开销,允许缓存在对象堆之外使用其他类型的内存存储,如果我们使用了对象堆中的所有 RAM。序列化和反序列化确实发生在这个堆外存储中。

同样,Diskstore 也是二级缓存,将序列化后的对象存储在磁盘上。

在上面的链接中提到堆外存储比磁盘存储快两个数量级。如果我将 Diskstore 配置为将数据存储在 RAM Disk 中,会发生什么情况? ? BigMemory 还会有明显的性能优势吗?

BigMemory 是否做了一些其他的优化?有没有人遇到过比较这两种方法的此类实验?

最佳答案

以下是在 terracotta forum 上对该问题的回答摘录.

“我希望您在使用开源(社区版)Ehcache 磁盘存储时面临的三大问题是:首先,在开源中,只有值存储在磁盘上——键和将键映射到值的元数据仍然存储在堆中(对于 BigMemory 而言并非如此)。这意味着堆仍然是缓存大小的限制因素。其次,开源磁盘存储被设计为由单个(传统上旋转的磁盘 - 尽管有些人现在确实使用 SSD 驱动器),这意味着后端比 Enterprise BigMemory 的并发性更低(尤其是在写入方面),因为瓶颈预计在硬件级别。第三,开源磁盘存储执行的序列化空间效率较低所以序列化的值有更大的开销。”

关于java - EhCache BigMemory 与 RAM 磁盘上的 Diskstore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258862/

相关文章:

java - 验证用户后根据用户角色重定向页面

ruby - 如何逐行读取大文本文件并将此流逐行附加到 Ruby 中的文件?

java - 如何修复这个 Java 回文算法?

linux - 用于分析目的的编译选项

php - Symfony 缓存组件 (3.1) 不保存缓存

java - 如何确定在脚本引擎中运行的 Groovy 代码中是否存在变量?

java - 使用 MediaCodec 进行压缩

java - 在android中获取可移动SD卡路径

ruby-on-rails - 尽管 expires_in 24.hours,Rails 缓存值丢失/为零

caching - 估计并发 Azure Appfabric 缓存连接