C ++コードの時間を計ろうとしていますが、奇妙な結果が得られていました。このテストプログラムは、何が起こっているのかを特定するために作成しました。誰かが結果を説明できますか?これは、Ubuntu 11.04と、関連する場合はEC2中高CPUインスタンスで実行されました。
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
timespec startTime, currentTime;
long elapsed;
for (int i=0; i<5; i++) {
clock_gettime(CLOCK_REALTIME, &startTime);
sleep(1);
clock_gettime(CLOCK_REALTIME, ¤tTime);
elapsed = currentTime.tv_nsec - startTime.tv_nsec;
cout << elapsed << " nanoseconds elapsed" << endl;
cout << "1000000000 expected" << endl;
}
return 0;
}
出力:
109044 nanoseconds elapsed
1000000000 expected
133713 nanoseconds elapsed
1000000000 expected
197287 nanoseconds elapsed
1000000000 expected
143396 nanoseconds elapsed
1000000000 expected
111871 nanoseconds elapsed
1000000000 expected