Рассмотрим следующий код:
#include <cstdio>
#include <cmath>
const int COUNT = 1000000000;
int main()
{
double sum = 0;
for (int i = 1; i <= COUNT; ++i) {
sum += sqrt(i);
}
printf("%f\n", sum);
return 0;
}
Без -O2
он работает только на 2.9 с на моем компьютере, тогда как он работает с 6,4 с -O2
.
Мой компьютер Fedora 23 с g++ 5.3.1.
Я пробовал то же самое на Ubuntu 14.04 (с g++ 4.8), у него нет проблемы (все 6.4s).