Millisekundengenaues Benchmarking in C ++?

7

Ich möchte nicht wirklich profilieren, weil ich viele verschiedene kleine Benchmarks mit verschiedenen einfachen Funktionen machen wollte. Für das Leben von mir kann ich keine Möglichkeit finden, die Anzahl der Millisekunden in C ++ aufzuzeichnen, ich benutze übrigens Linux.

Können Sie die Methode vorschlagen, um die Systemuhr in Millisekunden zu erhalten (ich kann mit Sekunden abrechnen, wenn ich keinen einfachen Weg finden kann ...) und in welcher Kopfzeile sind sie enthalten?

    
John 26.09.2010, 12:08
quelle

2 Antworten

21

mit gettimeofday Funktion von sys/time.h Header-Datei, ich benutze diese Klasse:

%Vor%

zum Beispiel:

%Vor%     
M. Sadeq H. E. 26.09.2010, 12:12
quelle
7

Wenn Sie x86-CPU verwenden, können Sie die Anweisungen für den rdtsc-Assembler Ссылка verwenden, um die Anzahl der CPU-Takte dazwischen zu erhalten Ausführung von zwei (oder mehr) Befehlen. Aber: 1. Alle rdtsc-Befehle sollten auf demselben CPU-Kern laufen (falls Sie eine Multi-Core-CPU haben). 2. CPU sollte in konstanter Taktfrequenz laufen (CPU Power Management sollte deaktiviert sein).

Dima

    
Dima 26.09.2010 12:30
quelle