2011年1月25日火曜日

スレッドの処理時間(CPU時間)を計測する方法 - Java

最終更新日:2011/5/15

CPU時間を計測するJavaソース
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
long startCpuTime = threadMXBean.getCurrentThreadCpuTime();
// ここに時間を計測する処理を記述
long stopCpuTime = threadMXBean.getCurrentThreadCpuTime(); 
long transactionCpuTime = stopCpuTime  - startCpuTime;
メモ
ThreadMXBean(Java仮想マシンのスレッドシステムの管理インタフェース)を使います。
これで、処理の開始時間と終了時間のCPU時間を計り、処理にどれだけ時間がかかったかを計測できます。
getCurrentThreadCpuTime()は、現在のスレッドの合計 CPU 時間をナノ秒単位で返します。
CPU時間とは、プロセス開始から現在までのCPU使用時間実時間です。リアルタイムの時間とは違います。

また、java.lang.managementパッケージには、スレッド以外にもシステム情報を管理できるインターフェイスがいろいろ入っています。くわしくは、Javaドキュメントを見てね。


補足
リアルタイムの処理時間を計測するJavaソース
long startTime = System.currentTimeMillis();
// ここに時間を計測する処理を記述
long stopTime = System.currentTimeMillis();
long transactionTime = stopTime - startTime;

0 件のコメント:

コメントを投稿