Между прочим, в посте говорится не о сборщиках мусора вовсе, как таковых. А о распределении памяти внутри JVM, это несколько другая тема. Сравнивать со статьями по сборщикам мусора (выше) не совсем корректно.
А меня вот всегда интересовал вопрос, почему бы JVM PermGen и CodeCache не сбрасывать на диск и расшарить для всех процессов JVM? То есть сделать некий кеш-репозиторий, который хранит данные о линковке классов и прекомпилированный код, идентифицируя классы, скажем, по файлу .jar-а из classpath. И сразу решится одна из основных проблем JVM — время запуска апликации. С этой же целью например в виндах и линуксе линкер кеширует информацию о библиотеках.
У меня такое подозрение, что начиная с Java 5, она таскала с собой нечто подобное, но сделанное только для rt.jar. В директории JRE/bin при первом запуске создавался и пух на глазах один файл с расширением типа gst.
JVM изнутри – организация памяти внутри процесса Java