Javaサンプルコード辞典

GarbageCollectorMXBean - ガーベッジコレクションの回数と使用時間を取得する

GarbageCollectorMXBeanを利用して、ガーベッジコレクションの回数と使用時間を取得するサンプルコードです。

SUNのJava仮想マシンでは、New世代GCとOld世代GCという2つのガーベッジコレクタが存在しています。ManagementFactoryの静的メソッドgetGarbageCollectorMXBeans()でその2つのガーベッジコレクタに対応するMBeanを取得することができます。オブジェクトは生成されてから、ガーベッジコレクションから生き残るたびに世代が古くなり、管理するガーベッジコレクタがNew世代GCからOld世代GCへと変わります。New世代GCは比較的安価なコストで処理が実行されますが、Old世代GCは他のスレッドを全て停止して行われるため、パフォーマンスへの影響は重大です。このサンプルコードで生成されるオブジェクトは全てNew世代GCの対象となります。
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;

//ガーベッジコレクションの回数、使用時間を取得する
public class GetGcInfo {

      public static void main(String[] args) {

            //ガーベッジコレクタの情報にアクセスするためのオブジェクトを取得する
            //SunのVMの実装では「Copy」「MarkSweepCompact」の2つのガーベッジコレクタが
            //存在しています。「Copy」はNew世代GC用のコレクタ、「MarkSweepCompact」は
            //Old世代GC用のコレクタです。
            //このサンプルでは、「Copy」しか実行されません。
            List mBeans = ManagementFactory.getGarbageCollectorMXBeans();
            
            //ガーベッジコレクションを起動させるためにオブジェクトを生成する
            for(int i=0;i<100000;i++)
            {
                  String num = String.valueOf(i);
            }
            
            for(GarbageCollectorMXBean mBean : mBeans)
            {
                  //ガーベッジコレクタの名称
                  System.out.println(mBean.getName());
                  //ガーベッジコレクションが実行された回数
                  System.out.println(mBean.getCollectionCount());
                  //ガーベッジコレクションに使われた累積時間
                  System.out.println(mBean.getCollectionTime());
            }
      }

}

(2007年11月3日)  

 ちょっと一休み. Javaキーワード並び替えゲーム

画面に表示される文字列を並び替えるとJavaに関連するキーワードになります。ヒントをたよりに並び替えを行ってエンターを押してください。 ユーザ登録をしてログインするとランキングに参加できます。
Flex Tips

DWRでリッチなWebページを作る!

Java Tips  java.io 編

Java Tips  java.lang 編