Как я могу вызвать длинную полную паузу G C в приложении jvm? - PullRequest
1 голос
/ 17 апреля 2020

Я хотел бы вызвать длинную полную паузу G C в моем приложении jvm. Есть ли команда, которую я могу использовать? Я хотел бы иметь более 1 се c паузы.

1 Ответ

0 голосов
/ 04 мая 2020

Чтобы сделать полные GC длиннее (я предполагаю, что вы используете сборщик Parallel Scavenge), я думаю, вы можете попробовать:

  1. Отключить молодые GC перед полными GC (-XX: - ScavengeBeforeFullG C). Делая это, полные сборщики мусора также несут ответственность за сбор молодого поколения и, следовательно, занимают больше времени, чем сбор только старого поколения.

  2. Уменьшите размер молодого поколения (например, -XX: NewRatio или -Xmx). Таким образом, больше объектов войдет в старое поколение, а не умрет в молодом поколении. В результате у полных ГХ будет больше объектов для сбора, и они будут длиннее.

  3. Выделите больше долгоживущих объектов (если вы можете изменить исходный код вашего приложения). Например, попробуйте выделить долгоживущие и большие массивы, поскольку в старом поколении большие массивы будут выделяться непосредственно JVM.

...