Я пишу программу для расчета продолжительности, которую мой процессор берет, чтобы сделать один «Вспышки». Для этого я написал код нижеРасчет FLops
before = clock();
y= 4.8;
x= 2.3;
z= 0;
for (i = 0; i < MAX; ++i){
z=x*y+z;
}
printf("%1.20f\n", ((clock()-before)/CLOCKS_PER_SEC)/MAX);
Проблема в том, что повторяю ту же операцию. Разве компилятор не оптимизирует такого рода «Вещь»? Если да, то что мне нужно сделать, чтобы получить правильные результаты?
Я не использую функцию «rand», чтобы она не противоречила моему результату.
Вам нужно будет либо объявить 'двойной before' и' двойной after', а затем использовать 'перед = (двойной) часы();' (вы пропустили вне 'after'), или, произведите вычисление как '(double) (after-before)/CLOCKS_PER_SEC/MAX' –
На более высоких уровнях оптимизации, если вы не используете вычисленный' z' после выхода из цикла, вполне возможно, что компилятор может заметить что и устранить весь расчет. – twalberg