Sun 社の Java 仮想マシン実装(以下、Sun JVM)のデフォルト GC って、いわゆる昔からある世代別 GC で、GC スレッドは同時に 1 つしか動作せず、GC の度に全てのアプリケーションスレッドを停止させるいわゆるシリアルコレクタ(-XX:+UseSerialGC)によるものだと思ってました。
そしたら、Sun 社の以下のサイトによると、JDK 5.0 ベースの Sun JVM は、サーバ VM(-server オプション付与)のデフォルト GC アルゴリズムは、マルチ CPU/コア環境だと、パラレル GC(-XX:+UseParallelGC)なんですね。
マルチ CPU/コアな環境で Sun JVM をサーバ VM で動作させて詳細な GC ログをだす(-server -XX:+PrintGCDetails)と以下のようなログがでてきます。
[GC [PSYoungGen: 12878K->955K(20160K)] 39256K->28074K(253184K), 0.0102034 secs]PS~とついていると、パラレル GC しましたよん、という意味のようで。
へぇ~。