С Java SE 6 HotSpot [tm] Настройка сборки мусора виртуальной машины
следующий
Чрезмерное время GC и ошибка OutOfMemoryError
Параллельный сборщик сгенерирует ошибку OutOfMemoryError, если слишком много
время тратится на сборку мусора: если более 98%
общее время затрачивается на сборку мусора и составляет менее 2%
куча восстановлена, OutOfMemoryError будет брошен. Эта особенность
предназначен для предотвращения запуска приложений в течение длительного
Период времени, делая мало или нет прогресса, потому что куча
слишком маленький. При необходимости эту функцию можно отключить, добавив
вариант
-XX: -UseGCOverheadLimit для командной строки.
Политика такая же, как в параллельном коллекторе, за исключением того, что
время, потраченное на выполнение одновременных сборов, не засчитывается в
98% времени. Другими словами, только коллекции выполнены в то время как
приложение остановлено в счет избыточного времени GC. такие
коллекции, как правило, из-за сбоя одновременного режима или
явный запрос на сбор (например, вызов System.gc ()).
в сочетании с проходом вниз
Одно из наиболее часто встречающихся применений явного мусора
Сбор происходит с помощью распределенной сборки мусора RMIs (DGC).
Приложения, использующие RMI, ссылаются на объекты в других виртуальных машинах.
Мусор не может быть собран в этих распределенных приложениях без
иногда собирать локальную кучу, поэтому RMI вызывает полные коллекции
периодически. Частота этих коллекций можно контролировать
со свойствами. Например,
java -Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
указывает явный сбор один раз в час вместо значения по умолчанию один раз в час
минута. Тем не менее, это также может привести к тому, что некоторые объекты будут занимать гораздо больше времени.
быть исправленным. Эти свойства могут быть установлены до Long.MAX_VALUE
сделать время между явными коллекциями эффективно бесконечным, если
нет никакого желания для верхней границы своевременности DGC
активность.
Кажется, подразумевается, что период оценки для определения 98% длится одну минуту, но его можно настроить на JVM Sun с правильным определением.
Конечно, возможны и другие толкования.