Medir tiempo transcurrido en C
clock cuenta tiempo de procesador; CLOCKS_PER_SEC lo vuelve significativo.
#include <stdio.h>
#include <time.h>
double time_work(long iterations) {
clock_t started = clock();
volatile long sink = 0;
for (long i = 0; i < iterations; i++) {
sink += i % 7;
}
clock_t finished = clock();
return (double) (finished - started) / CLOCKS_PER_SEC;
}
void benchmark(void) {
printf("%.4f seconds\n", time_work(5000000L));
}
Cómo funciona
clock()devuelve tiempo de procesador, no tiempo de reloj de pared.- Dividir entre
CLOCKS_PER_SECda segundos. - Para reloj de pared,
timeo un reloj POSIX es la llamada correcta.
Palabras clave y builtins usados aquí
clock_tdoubleforlongreturnvoidvolatile
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 341
- Tokens
- 90
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 54 segundos.
Paso 2 de 2 en Tiempo; paso 6 de 14 en Programación de sistemas.