E’ possibile utilizzare questo codice per effettuare il benchmarking di una funzione. Misuriamo la durata in unità di tempo e ne restituiamo anche i secondi con precisione float.

E’ previsto il passaggio del nome della funzione in formato stringa (per scrittura a video successiva) e l’indirizzo della funzione da chiamare. All’interno di questa funzione è possibile utilizzare callback apportando gli opportuni aggiustamenti.

int
benchmark(char *strFunction,
          void (*func)())
{
  clock_t start, finish; /* clock_t e' il tipo >aritmetico<
                          * restituito da clock() */
  long units;

  start = clock();
  func();      /* Qui passiamo la nostra funzione con i
                * relativi parametri, se richiesti */
  finish = clock();

  units = finish - start;
  /* Scriviamo i risultati
   * NOTA: strFunction e' solo il nome della
   *   funzione in formato stringa */
  printf("%s took %ld time units (%f seconds)\n", strFunction, units,
    (double)units / (double)CLOCKS_PER_SEC);

  return 0;
}