Информация об изменениях

Сообщение Re[3]: Примечание к тестам производительности от 12.03.2017 14:21

Изменено 12.03.2017 14:26 AlexGin

Re[3]: Примечание к тестам производительности
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, N. I., Вы писали:


NI>>А почему бы тяжёлое вычисление синуса просто не вынести во внешний цикл, вместо того чтобы надеяться на то, что до этого додумается компилятор? Или, может, оптимизирующие компиляторы у нас теперь дают какие-то документированные стопроцентные гарантии насчёт подобных случаев?


AG>Выбросил из внутреннего цикла вычисление синуса — время выполнения тригонометрического теста — практически не поменялось (для MSVC 2015) —

AG>на моей домашней машинке 11 секунд. Завтра посмотрю время выполнения на быстром рабочем компе.
AG>Вот коды консольной версии:
AG>https://github.com/AlexGin/MathConsole/blob/master/MathConcole.cpp

P.S. В то же время вынос расчёта синуса во внешний цикл, приводит к тому, что можно даже не проводить прокачку сообщений — время всё равно будет считаться корректно.
Re[3]: Примечание к тестам производительности
Интересные наблюдения:
Вынос расчёта синуса во внешний цикл, приводит к тому, что можно даже не проводить прокачку сообщений — время всё равно будет считаться корректно.

Возможно, что компилятор сам пытается провести оптимизацию — вынести синус, но это приводит к проблемам — то есть bug всё-таки есть.
Когда же мы вручную выносим расчёт синуса на внешний цикл — всё идёт корректно, и дополнительная прокачка сообщений не требуется...