Intervall zwischen 2 Vorgängen mit Cime erhalten?
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
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));