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