Java コードの特定のセグメントについて、以下を測定したいと思います。
- 実行時間 (おそらくスレッド実行時間)
- メモリ使用量
- CPU 負荷 (特にコード セグメントに起因する)
私は比較的 Java の初心者であり、これがどのように達成されるかについてよく知りません。私はJMXに言及されましたが、それがどのように使用されるかはわかりません.JMXは、私がやろうとしていることに対して少し「重い」ように見えます.
start()
理想的には、コード セグメントの前にメソッドを呼び出し、後でメソッドを呼び出すオプションを使用して、何を測定したいかを伝えることができる測定クラスが必要stop()
です。関連するメトリックは、指定したファイルに記録されます。
例えば:
import com.example.metricLogger;
metricLogger logger = new metricLogger();
logger.setLogPath(pathToLogFile);
logger.monitor(executionTime);
logger.monitor(memoryUsage);
logger.monitor(cpuLoad);
logger.start();
/* Code to be measured */
logger.stop();
Javaでこれを達成する標準/一般/従来の方法はありますか?
このような測定は 1 回限りのパフォーマンス比較のためのものであるため、本番環境での長期的な監視プロセスを探しているわけではありません。
チュートリアルや外部の例を参照できることを嬉しく思いますが、ここで完全な回答を期待することはできません。とはいえ、上記のような単純なものを実現できれば、現実的な例はうまくいくでしょう。