Neo4j 3.5 Java嵌入式。如何增加堆大小?

时间:2018-12-28 16:32:01

标签: java neo4j heap-memory uniform-cost-search

在使用Java嵌入式Neo4j时,如何将堆的大小增加到2 GB以上?

我尝试使用将其增加到4 GB

GraphDatabaseService graphDb = new GraphDatabaseFactory()
  .newEmbeddedDatabaseBuilder(new File("C:\\...\\graph.db"))
  .setConfig(GraphDatabaseSettings.pagecache_memory, "4096M")
  .newGraphDatabase();
manual中所述

,但这似乎对堆的大小没有影响,例如
最大值:2,124,414,976 B,如下图所示。

enter image description here


详细信息

在进行uniform cost search或费用最低的优先搜索时,需要保留

  1. 访问的每个节点的列表
  2. 未处理的每个关系的成本队列

在使用嵌入Java的Neo4j时,应用程序以

结尾
java.lang.OutOfMemoryError: GC overhead limit exceeded

要监视正在运行的应用程序,请在IntelliJ 1.4.2。的调试模式下与Visual VM社区2018.3一起运行。

已安装IntelliJ插件VisualVM Launcher

enter image description here


编辑

这有助于克服问题进行测试,但仍然无法回答问题。它被张贴在这里,以便可以帮助找到该问题的其他人。

虽然我目前找不到在使用Neo4j Java API创建Neo4j图时增加JVM堆大小的方法。

new GraphDatabaseFactory()

new EnterpriseGraphDatabaseFactory()

使用IntelliJ进行测试时

通过使用创建图形

GraphDatabaseService graphDb = new GraphDatabaseFactory()
    .newEmbeddedDatabase(new File("C:\\...\\graph.db"));

并使用Intellj Run/Debug Configurations Dialog

enter image description here

并通过添加JVM配置选项来编辑VM options,以开始堆大小Xms和最大堆大小Xmx,例如

-Xms4096m -Xmx4096m

在测试过程中,堆增加到4,4294,967,296 B,并且程序按预期完成。

enter image description here

enter image description here

enter image description here

0 个答案:

没有答案