Neo4j 3.5 Java встроенный. Как увеличить размер кучи?
При использовании Neo4j, встроенного в Java, как мне увеличить размер кучи до 2 гигабайт?
Я пытался увеличить его до 4 гигабайт, используя
GraphDatabaseService graphDb = new GraphDatabaseFactory()
.newEmbeddedDatabaseBuilder(new File("C:\\...\\graph.db"))
.setConfig(GraphDatabaseSettings.pagecache_memory, "4096M")
.newGraphDatabase();
как отмечено в руководстве, но это, похоже, не влияет на размер кучи, например
Макс.: 2 124 414 976 B на изображении ниже.
подробности
При поиске с одинаковой или минимальной стоимостью первый поиск требует сохранения
- Список каждого посещенного узла
- Очередь стоимости для каждого отношения не обрабатывается
При использовании Neo4j, встроенного в Java, приложение заканчивается
java.lang.OutOfMemoryError: GC overhead limit exceeded
Для мониторинга работающего приложения оно запускается с IntelliJ Community 2018.3 в режиме отладки с Visual VM 1.4.2.
Установщик IntelliJ Plugin VisualVM установлен.
РЕДАКТИРОВАТЬ
Это помогает преодолеть проблему для тестирования, но все еще не отвечает на вопрос. Это размещено здесь так, чтобы это могло помочь другим, которые находят этот вопрос.
Хотя в настоящее время я не могу найти способ увеличить размер кучи для JVM при создании графика Neo4j с помощью Java API Neo4j, например
new GraphDatabaseFactory()
или же
new EnterpriseGraphDatabaseFactory()
при тестировании с использованием IntelliJ
создавая график с помощью
GraphDatabaseService graphDb = new GraphDatabaseFactory()
.newEmbeddedDatabase(new File("C:\\...\\graph.db"));
и с помощью диалогового окна Intellj Run / Debug Configurations
и редактирование VM options
добавив параметры конфигурации JVM для запуска размера кучи Xms
и максимальный размер кучи Xmx
например
-Xms4096m -Xmx4096m
куча была увеличена во время тестирования до 4,4294,967,296 B, и программа завершена, как и ожидалось.