Я получил следующее от здесь :
Первые две строки показывают, что у вас две второстепенные коллекции и одна большая один. Цифры до и после стрелка указывает комбинированный размер живые объекты до и после мусора коллекции соответственно. После несовершеннолетних коллекции, в число входят объекты это не обязательно живые, но не могут быть возвращены, потому что они прямо живы, или потому что они находятся в пределах или ссылаются на постоянное поколение. Число в круглые скобки общее доступное пробел, не считая пробела в постоянное поколение, которое является общая куча минус один Формат для основная коллекция в третьей строке похож. Флаг -XX: + PrintGCDetails печатает дополнительную информацию о коллекциях. В дополнительная информация напечатана с этот флаг может быть изменен каждая версия виртуальной машины. Дополнительный вывод с -XX: + Флаг PrintGCDetails, в частности, изменяется в соответствии с потребностями разработка Java Virtual Машина. оставшихся в живых пространств. В незначительный сбор занял около четверти секунды.
Его нет в FAQ Java GC
http://java.sun.com/docs/ hotspot / gc1.4.2 / faq.html
Ничего подобного не упоминается на странице примеров Java GC
http://java.sun.com/docs/hotspot/gc1.4.2/example.html
Я никогда раньше такого не видел.
У вас работает какой-нибудь специальный сборщик мусора? Какая у вас виртуальная машина? Всегда ли это происходит перед полным сборщиком мусора? Вы вызываете System.gc ()?
Фактически, обнаружив это в наших собственных журналах, у нас с коллегой есть альтернативное объяснение, которое, кажется, более точно соответствует фактам.
В этом примере вы заметите, что полный сборщик мусора следует этой странной второстепенной линии сборки мусора. Я могу подтвердить, что это всегда происходит в наших журналах. Вы также можете видеть, что начальный и конечный размер молодого поколения равны, и я могу еще раз подтвердить, что это всегда так.
Мы считаем, что здесь происходит то, что виртуальная машина запустила вспомогательный сборщик мусора и, после того, как либо не имеет возможности освободить что-либо, либо проводит слишком много времени, не имея возможности что-либо освободить, вместо этого решает выполнить полное.
Ишай сказал в комментариях:
Учитывая временные метки и объем памяти, я предполагаю, что он выполнил сборку мусора, но потерял доступную память (потому что другие объекты были создается параллельно)