Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaメソッドの実行時間を測定する方法は?


一般に、経過時間は、イベントの開始点から終了点までの時間です。以下は、Javaで経過時間を見つけるためのさまざまな方法です-

  • currentTimeMillis()メソッドは、現在の時刻をミリ秒単位で返します。メソッドの経過時間を見つけるには、目的のメソッドの実行前後の時間値の差を取得できます。
  • nanoTime()メソッドは、現在の時刻をナノ秒単位で返します。メソッドの経過時間を見つけるには、目的のメソッドの実行前後の時間値の差を取得できます。
  • Instantクラスのnow()メソッドは現在の時刻を返し、Duration.between()メソッドは指定された2つの時刻値の差を返し、経過時間を取得して、目的の実行の前後の時刻値を取得しますメソッドを実行し、Duration.between()メソッドを使用して期間を取得します。
  • Apache Commonsライブラリは、Stopwatchと呼ばれるクラスを提供し、メソッドの実行にかかる時間を見つけるためのstart()stop()メソッドとgetTime()メソッドを提供します。

次の例は、上記のメソッドを使用してメソッドの実行時間を見つける方法を示しています-

import java.time.Duration;
import java.time.Instant;
import org.apache.commons.lang3.time.StopWatch;
public class Example {
   public void test(){
      int num = 0;
      for(int i=0; i<=50; i++){  
         num =num+i;
         System.out.print(num+", ");
      }  
   }
   public static void main(String args[]){
      Example obj = new Example();
      long start1 = System.nanoTime();
      obj.test();
      long end1 = System.nanoTime();      
      System.out.println("Elapsed Time in nano seconds: "+ (end1-start1));      
      long start2 = System.currentTimeMillis();
      obj.test();
      long end2 = System.currentTimeMillis();      
      System.out.println("Elapsed Time in milli seconds: "+ (end2-start2));
      Instant inst1 = Instant.now();
      obj.test();
      Instant inst2 = Instant.now();      
      System.out.println("Elapsed Time: "+ Duration.between(inst1, inst2).toString());
      StopWatch stopWatch = new StopWatch();
      stopWatch.start();
      obj.test();
      stopWatch.stop();      
      System.out.println("Elapsed Time in minutes: "+ stopWatch.getTime());
   }
}

出力

0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time in nano seconds: 1882300
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time in milli seconds: 1
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: PT0.001S
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time in minutes: 1

  1. Javaでリモートメソッドを介してデータを送信する方法は?

    RMIはRemoteMethod Invocationの略です 。これは、あるシステム(JVM)にあるオブジェクトが、別のJVMで実行されているオブジェクトにアクセス/呼び出すことを可能にするメカニズムです。 RMIは、分散アプリケーションを構築するために使用されます。 Javaプログラム間のリモート通信を提供します。パッケージjava.rmiで提供されます 。 RMI Javaアプリケーションを作成するには、以下の手順に従う必要があります- ステップ1-リモートインターフェイスを定義する リモートインターフェイスは、特定のリモートオブジェクトのすべてのメソッドの説明を提供します。クライ

  2. JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?

    invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in