我目前将Hibernate和H2一起用于我的音乐标记应用程序,使用hibernate的主要原因是要阻止内存使用量与标记的文件数量成比例地增加,如果所有处理都存储在内存中而不是磁盘中,那将是这样。< / p>
我使用Hibernate的一件事是从在线数据库下载元数据,然后,如果应用程序需要再次使用该元数据,他们可以从Hibernate本地检索,而不是从网络上重新下载较慢。
应用程序在具有良好性能的PC上可以正常运行,但是我现在正尝试在较慢的nas设备上提高性能,并且由于cpus和磁盘I / o缓慢而降低了性能。
这导致我查看了Hibernate的二级缓存,即我为Ehcache分配了少量内存,然后在Hibernate查找之前将应用程序查找到了那里,这提高了性能。
这让我开始思考,因为元数据查找仅通过主键进行(没有其他类型的查询),使用Hibernate处理此类数据是否犯了错误。将Ehcache直接用于这种类型的数据是否更有意义,或者我最好使用NoSql数据库。
这基本上取决于cpu的性能,但是我无法找到可比的基准。我希望在这方面有更多经验的人可以让我对可能的性能结果有所了解。
答案 0 :(得分:1)
您实际上不需要休眠。除非您要保留数据其他时间,否则使用缓存是正确的解决方案。
因此,仅原始Ehcache将是完美且最快的选择。但是要进行基准测试并调整设置。