typestar

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

  1. clock() devuelve tiempo de procesador, no tiempo de reloj de pared.
  2. Dividir entre CLOCKS_PER_SEC da segundos.
  3. Para reloj de pared, time o un reloj POSIX es la llamada correcta.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 2 en Tiempo; paso 6 de 14 en Programación de sistemas.

← Anterior Siguiente →