Linux で time -p コマンドを試していて、CPU サイクルを浪費するコードを書きました。
#include <iostream>
using namespace std;
int main() {
long int c;
long int ss;
for(c = 0;c < 10000000;c++) {
ss += c*c;
}
cout<<ss<<endl;
return 0;
}
ただし、数回実行した後、何かおかしいことに気付きました。
me@octopus:~/Desktop> ./test
1292030741067648912
me@octopus:~/Desktop> ./test
1292030742538841328
me@octopus:~/Desktop> ./test
1292030742228685600
me@octopus:~/Desktop> ./test
1292030740402651312
me@octopus:~/Desktop> ./test
1292030740207543344
me@octopus:~/Desktop> ./test
1292030740346553856
me@octopus:~/Desktop> ./test
1292030741629275040
me@octopus:~/Desktop> ./test
1292030740397307072
me@octopus:~/Desktop> ./test
1292030742928964784
me@octopus:~/Desktop> ./test
1292030741780094096
毎回同じ数字が出ないだけでなく、さすがに一度も同じ数字が出ませんでした。ここで何が起こっているのですか?