使用Hibernate + EhCache、EhCache或NoSql的性能比较

Performance comparison of using Hibernate + EhCache, EhCache or NoSql

我目前将 Hibernate 与 H2 一起用于我的音乐标记应用程序,使用 Hibernate 的主要原因是阻止内存使用量与标记的文件数量成比例增加,如果所有处理都存储在内存而不是磁盘中,它就会这样.

我使用 Hibernate 的其中一个目的是从在线数据库下载元数据,然后如果应用程序需要再次使用该元数据,它们可以从 Hibernate 本地检索,而不是从 Web 重新下载速度较慢。

应用程序在 PC 上运行良好,性能良好,但我现在正试图提高较慢的 nas 设备上的性能,性能被较慢的 cpus 和磁盘 i/o.[=10 拖累=]

这促使我查看 Hibernates 二级缓存,即我为 Ehcache 分配了少量内存,然后应用程序在 Hibernate 查找之前查看那里,这提高了性能。

这让我开始思考,因为元数据查找仅通过主键,(没有其他类型的查询)我对此类数据使用 Hibernate 是不是犯了一个错误。直接对此类数据使用 Ehcache 是否更有意义,还是我最好使用 NoSql 数据库。

它基本上归结为 cpu 性能,但我一直无法找到可比较的基准。我希望在这方面有更多经验的人可以给我一个关于可能的性能结果的看法。

你确实不需要Hibernate。除非你想在其他时间持久化数据,否则使用缓存是正确的解决方案。

因此,原始 Ehcache 将是完美且最快的选择。但是做一个基准测试并调整你的设置。