При запуске Concurrent Mark & Sweep в Java 6 я получаю сообщение «abort preclean in time». Что это значит? GC действительно останавливается в середине, прежде чем он сделал какую-то реальную работу?
Ознакомьтесь с разделом MaxAbortablePrecleanTime в Блог Масамицу . Это даст вам лучшее представление о том, что делает предчистая фаза. Лучше, чем я хочу печатать;)