====== Genaue Zeitmessung unter MacOS ====== Die exakte Zeitmessung mit MacOS wird mit der Funktion ''mach_absolute_time()'' durchgeführt. Diese Funktion findet sich im Darwinkernel in den Includes in der Datei ''mach/mach_time.h''. Um eine klare Aussage zu treffen, wieviel Zeit genau vergangen ist, hilft die Funktion ''AbsoluteToNanoseconds()'' in den CoreServices des MacOS. #include #include Mit folgender Funktion lässt sich die aktuelle Zeit als 64 Bit Integer darstellen: uint64_t timeAsNanoseconds(void) { uint64_t t = mach_absolute_time(); return *(uint64_t *) &AbsoluteToNanoseconds(* (AbsoluteTime*) &t); } Nun können wir die Zeit messen, die ein Vorgang benötigt: uint64_t begin, end; begin = timeAsNanoseconds(); /* Programmabschnitt, dessen Zeit gemessen werden soll */ end = timeAsNanoSeconds(); Die benötigte Zeit lässt sich nun wie folgt in Nanosekunden berechnen: uint64_t elapsed = end - begin; Um diesen Quelltext zu kompilieren muss das ''CoreServices''-Framework an dem Compiler übergeben werden, zum Beispiel: gcc test.c -framework CoreServices \\ ---- siehe auch: [[http://www.macresearch.org/tutorial_performance_and_time|MacResearch]]