Re[4]: [performance] ладно, заинтриговал
От: rg45 СССР  
Дата: 05.07.22 05:37
Оценка:
Здравствуйте, Quebecois, Вы писали:

Q>
Q>    for (auto d : wstr)
Q>    {
Q>        uint32_t number = (uint32_t)d - (uint32_t)'0';
Q>        if (number <= 9)
Q>        {
Q>            res = res * 10 + number;
Q>        }
Q>        else
Q>        {
Q>            throw std::out_of_range("'" + std::to_string(d) + "': Symbol is out of range");
Q>        }
Q>    }
Q>


Да-да, трюк известный! Я его применял еще на заре своей деятельности как программиста. Но, помнится, как-то раз мне за такое надавали линейкой по рукам и сказали, что "битхаки нам тут не нужны". Мол, современные оптимизаторы (Visual Studio 5.0 ) и сами умеют выполнять такие преобразования, поэтому текст программы должен быть ориентирован на человека, в первую очередь. Можно сказать, травма детства

Ну и соображение вдогонку: этот же самый финт можно проделать и в примере на C#. Так что, думаю, что это не та оптимизация, которая способна изменить баланс сил.
--
Отредактировано 05.07.2022 6:13 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.