Java プロジェクトで作業していますが、プロファイリング ツールは使用していません。
プロファイリング ツールを使用せずに、メソッドの実行にかかる時間を調べる方法はありますか?
次のようなものを使用しないのはなぜですか。
int startTime = System.currentTimeMillis();
methodCall();
int endTime = System.currentTimeMillis();
int totalTime = endTime - startTime;
System.out.println("Time to complete: " + totalTime);
次に、/ 1000などを追加して、必要に応じて時間をフォーマットできます。
System.currentTimeMillis()を使用して、開始前と終了時にSystem.currentTimeMillis()をキャッチします。メソッドの実行にかかる時間を知ることができます。
void fun(){
long sTime=System.currentTimeMillis();
...
System.out.println("Time Taken to execute-"+System.currentTimeMillis()-sTime+" milis");
}
タイミングをキャプチャするサンプル プログラムを次に示します。
package com.quicklyjava;
public class Main {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// start time
long time = System.nanoTime();
for (int i = 0; i < 5; i++) {
System.out.println("Sleeping Zzzz... " + i);
Thread.sleep(1000);
}
long difference = System.nanoTime() - time;
System.out.println("It took " + difference + " nano seconds to finish");
}
}
出力は次のとおりです。
Sleeping Zzzz... 0
Sleeping Zzzz... 1
Sleeping Zzzz... 2
Sleeping Zzzz... 3
Sleeping Zzzz... 4
It took 5007507169 nano seconds to finish