In questo esempio, impareremo a calcolare il tempo di esecuzione di metodi normali e metodi ricorsivi in Java.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:
- Metodi Java
- Ricorsione Java
Esempio 1: programma Java per calcolare il tempo di esecuzione del metodo
class Main ( // create a method public void display() ( System.out.println("Calculating Method execution time:"); ) // main method public static void main(String() args) ( // create an object of the Main class Main obj = new Main(); // get the start time long start = System.nanoTime(); // call the method obj.display(); // get the end time long end = System.nanoTime(); // execution time long execution = end - start; System.out.println("Execution time: " + execution + " nanoseconds"); ) )
Produzione
Tempo di esecuzione del metodo di calcolo: Tempo di esecuzione: 656100 nanosecondi
Nell'esempio precedente, abbiamo creato un metodo denominato display()
. Il metodo stampa un'istruzione sulla console. Il programma calcola il tempo di esecuzione del metodo display()
.
Qui abbiamo utilizzato il metodo nanoTime()
della System
classe. Il nanoTime()
metodo restituisce il valore corrente della JVM in esecuzione in nanosecondi.
Esempio 2: calcola il tempo di esecuzione del metodo ricorsivo
class Main ( // create a recursive method public int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) // main method public static void main(String() args) ( // create object of Main class Main obj = new Main(); // get the start time long start = System.nanoTime(); // call the method obj.factorial(128); // get the end time long end = System.nanoTime(); // execution time in seconds long execution = (end - start); System.out.println("Execution time of Recursive Method is"); System.out.println(execution + " nanoseconds"); ) )
Produzione
Il tempo di esecuzione del metodo ricorsivo è 18600 nanosecondi
Nell'esempio precedente, stiamo calcolando il tempo di esecuzione del metodo ricorsivo denominato factorial()
.