Цитата:
Сообщение от Gromov
Если вы используете программы, написанные на с++ (справедливо не только для контроллеров), то вы можете заметно увеличить их производительность (потребление процессорного времени) безболезненно и бесплатно.
...
Пишите, пожалуйста, критику и отзывы.
|
Посмотрел разницу в результате компиляции для x86_64.
Без флагов используются переменные на стеке и вычисления соответствуют выражению в исходном коде:
Код:
...
.L4:
movl -16(%rbp), %eax
imull -12(%rbp), %eax
addl %eax, -4(%rbp)
sall $5, -4(%rbp)
addl $1, -12(%rbp)
cmpl $4999999, -12(%rbp)
jle .L4
...
с оптимизацией переменные разместились в регистрах, а операция умножения была исключена из расчетов:
Код:
...
.L3:
addl %eax, %edx
addl $500, %eax
sall $5, %edx
cmpl $-1794967296, %eax
jne .L3
...
За счет этого и получилась разница во времени исполнения.