Java >> Java tutorial >  >> Java

Sådan finder du køretiden for et Java-program

Sådan finder du køretiden for et Java-program | I dette afsnit vil vi diskutere, hvordan man måler eksekveringstid i Java. Udførelsestid eller CPU-tid for et program eller en opgave er den tid, det tager et system at udføre en bestemt opgave eller et program.

For at finde kørselstiden for et java-program kan vi tage hjælp af en af ​​nedenstående to metoder:-
1) System.currentTimeMillis()
Metode Syntaks:- public static long currentTimeMillis()
Denne metode returnerer den aktuelle tid i millisekunder.
2) System.nanoTime()
Metode Syntaks:- pubic static long nanoTime()
Denne metode returnerer den aktuelle værdi af den kørende Java Virtual Machines højopløselige tidskilde i nanosekunder.

Sådan beregnes runtime i Java

Trin 1:- Opret en metode display() i hovedklassen for at vise print-sætningen.
Trin 2:- Opret et objekt til hovedmetoden i hovedmetoden og brug System.nanoTime() metoden og kald derefter displayet metode og udskriv de påkrævede udsagn.

public class Main {

   public void display() {
      System.out.println("Main.display()");
   }

   public static void main(String[] args) {
      Main obj = new Main();
      // get current time before calling the method
      long start = System.nanoTime();

      obj.display();

      // get current time after calling the method
      long end = System.nanoTime();

      long executionTime = end - start;
      System.out.println("The display() method execution"+
             " time is: " + executionTime + " nanoseconds");
   }
}

Output:-

Main.display()
Udførelsestiden for display()-metoden er:1147157 nanosekunder

På de forskellige computere kan du få et andet resultat og på flere kørsler kan du få forskellige resultater. Udførelsestiden afhænger fuldstændig af systemets ydeevne.

Find køretiden for et Java-program

Lad os se et andet program til at finde runtime for et Java-program ved at bruge både nanoTime() og currentTimeMillis().

public class Main {
   public static void main(String[] args) {
      long initialNano = System.nanoTime();
      long initialMilli = System.currentTimeMillis();

      someFunction();

      long nano = System.nanoTime();
      long milli = System.currentTimeMillis();

      System.out.println("The execution time in nano seconds: "
                         + (nano - initialNano));
      System.out.println("The execution time in milli seconds: "
                         + (milli - initialMilli));
   }

   public static void someFunction() {
      for (int i = 0; i < Integer.MAX_VALUE; i++) {
         for (int j = 0; j < Integer.MAX_VALUE; j++) {
            // perform some operations
         }
      }
   }
}

Output:-

Udførelsestiden i nanosekunder:5512114
Udførelsestiden i millisekunder:5

Udførelsestiden i nanosekunder:5070952
Udførelsestiden i millisekunder:5

Mål eksekveringstid i Java for en rekursiv metode

Rekursionen er en teknik, der kalder den samme metode igen og igen. Forklaringen på nedenstående kode for at finde køretiden for et Java-program er som følger:-

Trin-1:- Opret en hovedklasse kaldet Main og opret en funktion factorial() som er en rekursiv funktion, der finder factorialet af et tal.
Trin-2:- Derefter skal du i hovedmetoden oprette et objekt af hovedklassen og brug System.nanotime()-metoden. Træk derefter start- og sluttidspunktet for programmet og forskellen i nanosekunder.

public class Main {

   public int fact(int n) {
      if (n != 0)
         return n * fact(n - 1);
      else
         return 1;
   }

   public static void main(String[] args) {
      Main obj = new Main();
      long start = System.nanoTime();

      obj.fact(128);

      long end = System.nanoTime();
      long executionTime = (end - start);

      System.out.println("The execution time of " +
                         "recursive method is: " + 
                         executionTime + " nanoseconds");
   }
}

Output:-

Udførelsestiden for den rekursive metode er:21542 nanosekunder


Java tag