Как заставить full gc на sun / oracle jvm выполнить выравнивание / сжатие памяти в старом поколении - PullRequest
0 голосов
/ 03 января 2012

У меня есть приложение с огромной кучей (около 100 ГБ), и во время инициализации оно распределяет почти всю доступную память с разными кэшами. Проблема заключается в том, что на этой фазе инициализации выделяется много объектов, которые вызывают болезненную дефрагментацию старого поколения. Поэтому моя идея состоит в том, чтобы принудительно настроить полный gc на последнем этапе фазы инициализации для выравнивания / сжатия старого поколения и уменьшения вероятности «сбоя одновременного режима» во время выполнения.

Есть ли способ заставить такую ​​коллекцию?

Спасибо

1 Ответ

0 голосов
/ 09 января 2012

Как правило, вам следует исчерпать свою память, а затем вызов gc должен работать.

Рассмотрите этот способ http://www.informit.com/articles/article.aspx?p=19703

Вы можете попробовать и этот https://stackoverflow.com/a/6915221/1137529 но я не уверен, будет ли он работать нормально.

...