/* Mesure du temps dans un programme Java        */

public class MesurerLeTempsAvecPrecisionEnConsole {

/* Programme principal                           */

  public static void main(String [] args) {
    Console.setTitle("MesurerLeTempsAvecPrecision");
    /* Temps ecoule entre deux appels successifs */
    /* a System.nanoTime()                       */
    /* Dix executions successives                */
    for ( int cpt = 0 ; cpt < 10 ; cpt++ ) {
      long t1 = System.nanoTime();
      long t2 = System.nanoTime();
      Console.formater("%d-%d = %d ns\n",t1,t2,t2-t1); }
    Console.sautDeLigne();
    /* Temps ecoule entre deux appels            */
    /* a System.nanoTime()                       */
    /* avec "quelque chose" entre                */
    /* Dix executions successives                */
    long j = 0;
    for ( int cpt = 0 ; cpt < 10 ; cpt++ ) {
      long t1 = System.nanoTime();
      for ( long i = 0L ; i < 1000000000L ; i++ ) {
        j++; }
      long t2 = System.nanoTime();
      long dt = t2-t1;
      long ns = dt%1000;
      dt = dt/1000;
      long mls = dt%1000;
      dt = dt/1000;
      long ms = dt%1000;
      long s = dt/1000;
      Console.formater("%3d s, %3d ms, %3d mls, %3d ns\n",s,ms,mls,ns); }
  }
}