Ответ: Оптимизируем программы на с++
Цитата:
Сообщение от Gel
Посмотрел разницу в результате компиляции для x86_64.
|
x86 - другая история, это CISC, а не RISC.
Цитата:
Сообщение от Gel
с оптимизацией переменные разместились в регистрах, а операция умножения была исключена из расчетов:
Код:
...
.L3:
addl %eax, %edx
addl $500, %eax
sall $5, %edx
cmpl $-1794967296, %eax
jne .L3
...
За счет этого и получилась разница во времени исполнения.
|
А вот как компилятор умножение на некруглую цифру заменил выделением константы - это внушает уважение и даже некоторые сомнения)) Это точно код нужного участка?
Всё честно для x86: размещение данных в регистрах и выполнение одного цикла тактов за 10 с загрузкой пяти модулей конвейера. Выполняться должно почти мгновенно.
__________________
Программа делает то что написал программист, а не то что он хотел.
Добро всегда побеждает зло. Кто победил - тот и добрый.
Последний раз редактировалось Arsie, 24.12.2018 в 18:23
|