JVM Survivor Spaces не используются - PullRequest
0 голосов
/ 04 февраля 2019

В настоящее время я провожу аудит кода для многих java-приложений для главного энергетического управления, расположенного во Франции.

Я использовал много инструментов для аудита кода (я даже написал специальный анализатор, так как не могу скомпилироватькод...).Для проблемы с производительностью (одна из сторон аудита) я использовал dynaTrace, и он показал мне, что пробелы susrvivor абсолютно пустые.

Кроме того, Eden space никогда не собирается сборщиком мусора, что провоцирует большое количество «остановка мира GC» на арендованном пространстве.Enden space - это пространство 1 ГБ, survivors - 300 МБ, а tenured - 2,8 ГБ.

Не могли бы вы помочь мне найти объяснение этому странному поведению?Заранее спасибо.

1 Ответ

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

Согласно этому сообщению: https://stackoverflow.com/a/39933015/6162023

Так будет ли когда-либо сценарий, когда объекты будут напрямую скопированы из eden в Old, если объекты меньше по размеру (не огромные))?

Если вы сделаете места для выживших достаточно маленькими, чтобы каждый раз вызывать полную коллекцию, объекты будут перемещаться из Эдема в Стандарта.

В вашем случае, есликод содержит утечку памяти (что является наиболее вероятным сценарием), если утечка достаточно велика, чтобы незначительный сборщик мусора заполнил бы все пространство Survivor, тогда объекты сразу же перемещаются в пространство Old Gen (Tenured).

...