Hallo,
mal eine Programmierfrage. Ich wollte die Laufzeit eines Codeteils mal Pi*Daumen messen. Dazu, hab ich mir ueberlegt, waere es ganz nett, den time stamp counter der CPU auszulesen. Also eine Funktion schnell eingefuegt, die nichts weiter macht als diesen auszulesen und vor und nach dem Codeteil diese Funktion aufgerufen und das Ergebnis ausgegeben. Gibt es eine bessere Idee? Falls nicht, koennte mir jemand mal einen Tip fuer eine gebrauchsfaehige derartige Funktion geben, so cookbook-maessig?
Kann man z.B. per Inline Assembler machen:
#include <stdio.h> #define rdtsc(X) asm volatile("rdtsc":"=A" (X))
int main(void) { long long start, stop; rdtsc(start); <zu messender Code> rdtsc(stop); printf("Zeit %d\n", stop-start); }
Einmal genügt allerdings nicht, da ja z.B. der Prozess während der Ausführung unterbrochen werden kann. Also häufiger machen.
Gruss Steffen