我以前在neo4j邮件列表(https://groups.google.com/forum/#!topic/neo4j/zn-7lKHVvNI)上发过邮件,但没有收到社区的任何回复,所以我在这里张贴.
我注意到了neo4j社区版的内存泄漏行为。在2.1.2上运行此测试代码(https://gist.github.com/mlaldrid/85a03fc022170561b807) (也对2.0.3进行测试),经过几十万次密码查询后,512 GC堆会导致GC搅动。最后,我要么得到一个OutOfMemory错误,要么抛出超时。
但是,当我对neo4j企业版的eval副本运行相同的测试代码时,它将继续执行350万次查询,没有发现遇到512 no堆限制的迹象。在那之后,我结束了测试,满意地认为这种行为与社区版有很大的不同。
因此,我的问题是:为什么这种内存泄漏行为在社区和企业版中有所不同?这是企业版的“高级缓存”功能解决的问题吗?这是社区版已知但不透明的限制吗?
谢谢你对这个问题的见解。
发布于 2014-07-16 15:43:15
这是最近发现的用于社区版本(弱缓存和软缓存)的4种缓存类型中的2种内存泄漏。它不会影响企业,因为企业在默认情况下使用'hpc‘缓存。
它只影响不太可能从数据库中的现有数据读取,或者系统上的大部分负载是写的情况下的部署。
我们已经解决了这个问题,并将在随后的版本中发布。现在,如果您的用例不幸地触发了这个问题,您将需要在社区中使用“强”缓存或“无”,或者在下一个补丁发布之前切换到企业。
发布于 2015-04-12 11:03:47
我在张贴jvisualvm的样本输出

我猜这个问题的答案是因为2.2.0中的漏洞仍然存在
编辑:
问题是使用ExecutionEngine。我在GraphDatabaseService上使用了execute方法,它解决了我的问题
https://stackoverflow.com/questions/24784266
复制相似问题