Я хочу использовать последний сборщик мусора G1, однако я столкнулся с ситуацией, когда я использовал ошибки выделения памяти при ее использовании. Я считаю, что это связано с тем, что он возвращает память обратно в ОС, и ОС не позволяет JVM вернуть ее, когда она запрашивается, поскольку это не происходит с CMS-сборщиком. Конкретный сервер, на котором я работаю, прекрасно работает с сборщиком CMS (помимо некоторых менее идеальных GC-пауз), как только я перехожу к G1, он сталкивается с этими ошибками распределения примерно через 6 часов работы и существует JVM.Запретить JVM освобождать кучу обратно в ОС при использовании коллектора G1
Непонятно, возможно ли предотвратить это с коллекционером G1, но я надеялся, что у кого-то в сообществе будет ответ.
Спасибо!
Параметр '-Xms' устанавливает начальную кучу, выделенную для JVM. Я бы подумал, что это может помешать освобождению выделенной кучи обратно в ОС. –
Действительно ли вы определили, что «ОС не позволяет JVM вернуть его»? Или это просто вывод из наблюдения отсутствия сбоев с CMS? – the8472
У меня нет столь сильных доказательств, что я бы хотел, чтобы ОС не позволяла JVM возвращать память, но, похоже, это так, поскольку я знаю, что одна из основных особенностей G1 заключается в том, что она выпустит памяти обратно в ОС. Я считаю, что лучший способ определить, является ли это основной причиной его отключения и повторного тестирования. –