public static native long nanoTime();
En conséquence, vous ne pouvez donc utiliser cette méthode pour représenter un instant précis. Par contre cette méthode peut être très utile pour réaliser des mesures de performance d'un code ou, plus généralement, des mesures d'intervalles de temps.
System.nanoTime()
est au moins aussi bonne que celle de la méthode
System.currentTimeMillis()
.
Cette méthode n'accepte aucun paramètre.
La valeur de retour est de type long
. Elle représente le temps interne de la JVM, exprimé en nanosecondes (10e-9).
Voici un exemple d'utilisation de la méthode System.nanoTime()
: on cherche à mesurer le temps pris par un appel à la méthode
Math.sin()
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package fr.koor.sample; public interface Sample { public static void main( String[] args ) { // On prend une mesure de temps avant. long begin = System.nanoTime(); // On lance le traitement à chronométrer. Math.sin( Math.PI ); // On prend une mesure de temps après. long end = System.nanoTime(); // On calcule la durée d'exécution totale. long duration = end - begin; System.out.printf( "Math.sin() duration is %d nanoseconds\n", duration ); System.out.printf( "Math.sin() duration is %f microseconds\n", duration / 1_000.0 ); System.out.printf( "Math.sin() duration is %f milliseconds\n", duration / 1_000_000.0 ); System.out.printf( "Math.sin() duration is %f seconds\n", duration / 1e9 ); } } |
Et voici les résultats produits par cet exemple de code.
Math.sin() duration is 13181 nanoseconds Math.sin() duration is 13,181000 microseconds Math.sin() duration is 0,013181 milliseconds Math.sin() duration is 0,000013 seconds
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :