Auf diesem Beispielcode:Warum berichten Perf-e-CPU-Zyklen unterschiedliche Antworten auf mehrere Läufe?
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
lief ich die folgenden Befehl 3 mal:
perf stat -e cpu-cycles ./sample
Im Folgenden sind die 3 Ausgänge an aufeinander folgenden Ausführungen:
1)
Hello World!
Performance counter stats for './try':
22,71,970 cpu-cycles
0.003634105 seconds time elapsed
2)
Hello World!
Performance counter stats for './try':
18,51,044 cpu-cycles
0.001045616 seconds time elapsed
3)
Hello World!
Performance counter stats for './try':
18,21,834 cpu-cycles
0.001153489 seconds time elapsed
das gleiche Programm nimmt unterschiedliche Anzahl von CPU-Zyklen auf mehreren Läufen Warum sollte?
Ich verwende "Intel (R) Core (TM) i5-5250U CPU @ 1.60GHz", "Ubuntu 14.04.3 LTS" und "g ++ 4.8.4".
Ich denke, dass diese Frage wieder geöffnet werden muss. Die verknüpfte Frage konzentriert sich hauptsächlich auf die Besonderheiten von "Schlaf". Ich glaube, dass die Variation in diesem Fall eine andere Erklärung hat. – Leon
Zum einen macht Ihr Programm meistens I/O. d. h. Interaktion mit der äußeren (sich ständig verändernden und unvorhersehbaren) Welt. –