G1 CG: длительное время очистки - PullRequest
0 голосов
/ 06 февраля 2019

Сборщик мусора G1 намного лучше, чем по умолчанию, но его время очистки неоправданно велико, 27 минут очистки после 3-часового запуска:

SUCCESS
Elapsed time: 186m21.5s
all done, exiting...
[GC concurrent-mark-end, 1626.1982305 secs]
[GC remark, 12.3848395 secs]
[GC cleanup 14G->14G(16G), 1.6514012 secs]

Программаработать на 4-ядерном процессоре с 16 ГБ оперативной памяти, он использует только один поток (основной).Одно ядро ​​всегда занято, предположительно, ОС (Ubuntu Linux, верный);при запуске программы системный монитор показывает менее 100% загрузки остальных трех ядер.

Программа запускается из оболочки bash.Никакое другое программное обеспечение не запускается параллельно с программой.

Есть ли способ сократить время, проведенное после завершения программы?

1 Ответ

0 голосов
/ 07 февраля 2019

Это стало лучше после того, как я добавил следующий код, который завершает процесс:

String command = "kill -9 "
                 + new File("/proc/self").getCanonicalFile().getName();
Runtime.getRuntime().exec(command);
...