Java で非常にパフォーマンスに敏感なアプリケーションを使用しています。(実際には C か何かを使用する必要があることはわかっていますが、現在は Java です。) オブジェクトの作成と破棄を避けようとしています。ここで、まだガベージ コレクションがどの程度行われているかを知る必要があります。
どうすればわかりますか?
可能であれば、追加のソフトウェアのインストールを必要としない、ミリ秒またはナノ秒単位の数値を取得したいと考えています。
Java で非常にパフォーマンスに敏感なアプリケーションを使用しています。(実際には C か何かを使用する必要があることはわかっていますが、現在は Java です。) オブジェクトの作成と破棄を避けようとしています。ここで、まだガベージ コレクションがどの程度行われているかを知る必要があります。
どうすればわかりますか?
可能であれば、追加のソフトウェアのインストールを必要としない、ミリ秒またはナノ秒単位の数値を取得したいと考えています。
または、JVM に GC アクティビティを出力させることもできます。これらの設定は次のとおりです。
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -Xloggc:logs/gc.log
GC アクティビティは、logs/gc.logファイルに出力されます。
これにはVisualVmを使用できます。まさに必要なものです。
以下に示すように、非常に便利な GC アクティビティがあります。
GC アクティビティのほかに、ヒープの使用状況、CPU の使用状況、オブジェクト インスタンスの使用状況など、多くの詳細があります。