Comments 10
Хотелось бы видеть проверку ваших утверждений в реальных тестах.
вот да, я хоть и не большой спец в Си, но почти уверен, что gcc в режиме O2 (возможно и меньших) о таких вещах заботится, нужны тесты.
Если этот результат является допустимым или даже желательным, и есть возможность использовать встроенную сборку, используйте этот код.
Не надо. Пожалуйста. Потому что
переносимость на другие семейства процессоров оставляет желать лучшего.
Уже давно прошли времена, когда можно было тестировать/запускать код только на х86.
К тому же посмотрите сюда, например. Компиляторы давно заменяют вызовы таких библиотечных функций оптимальной реализацией. Не надо пытаться делать работу компилятора.
n = int(floor(x + 0.5f));Зачем здесь floor?
fistp, который, как и в следующем коде, дает гораздо более быстрыйx87 в 2017 году?
По поводу округлений, автор предлагает сейчас писать процессорозависимый код. Отличное решение! Пусть программист пишет под все типы процессоров, которые на текущий момент имеются. А про преждевременную оптимизацию — это для лохов сказано. И не важно, скажем, что программа будет терять по 10-15 секунд на постоянных обращениях к БД, зато на процессорах семейства Pentium, она будет выполнять округление на 0.00001 с быстрее.
И на счет банковского округления мне понравилось. Автор решил, что это самый «правильный» метод округления, значит тому и быть.
И на счет банковского округления мне понравилось. Автор решил, что это самый «правильный» метод округления, значит тому и быть.
Sign up to leave a comment.
Оптимизация C/C++ кода