Frage

Ich bin daran interessiert, die Ausführungszeit für ein Programm in C an verschiedenen Stellen mit CTime anzuzeigen. Ich habe so etwas ausprobiert, aber es darf nicht richtig sein ...

int main() {

    time_t tm1, tm2;
    tm1 = time(NULL);
    sleep(2);
    tm2 = ctime(tm1);

    printf("%d\n", tm2-tm1);
    return 0;
}

Haben Sie einen Vorschlag oder ein richtiges Beispiel? Danke im Voraus

War es hilfreich?

Lösung

ctime() Gibt eine String -Darstellung der Zeit zurück.

Wenn Sie eine einfache verstrichene Zeit wünschen, nur:

    time_t t1, t2;
    t1 = time(0);
    sleep(2);
    t2 = time(0);

    printf("Elapsed: %d\n", t2 - t1);

Sehen man ctime und man 2 time.

Andere Tipps

Du kannst den ... benutzen time Funktion, um die aktuelle Zeit und die zu erhalten difftime Funktionieren Sie, um den Unterschied in Sekunden zwischen zweimal zu berechnen (Fehlerbehandlung ausgelassen):

time_t t0, t1;
t0 = time(NULL);
foo();
t1 = time(NULL);
printf("foo() took %f seconds.\n", difftime(t1, t0));

Jedoch, time_t ist für die Messung der Kalenderzeiten vorgesehen. Das time Die Funktion hat typischerweise ein Ein Sekundensintervall. Wenn dies zu grob ist, können Sie versuchen, es zu verwenden clock_t und die clock Funktion (Fehlerbehandlung erneut weggelassen):

clock_t t0, t1;
t0 = clock();
foo();
t1 = clock();
printf("foo() took %f seconds.\n", (double)((t1 - t0) / CLOCKS_PER_SEC));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top