Сообщение Re[4]: [performance] ладно, заинтриговал от 05.07.2022 5:37
Изменено 05.07.2022 6:13 rg45
Re[4]: [performance] ладно, заинтриговал
Здравствуйте, Quebecois, Вы писали:
Q>
Да-да, трюк известный! Я его применял еще на заре своей деятельности как программиста. Но, помнится, как-то раз мне за такое надавали линейкой по рукам и сказали, что "битхаки нам тут не нужны". Мол, современные оптимизаторы (Visual Studio 5.0 ) и сами умеют выполнять такие преобразования, поэтому текст программы должен быть ориентирован на человека, в первую очередь. Можно сказать, травма детства
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 ) и сами умеют выполнять такие преобразования, поэтому текст программы должен быть ориентирован на человека, в первую очередь. Можно сказать, травма детства
Re[4]: [performance] ладно, заинтриговал
Здравствуйте, Quebecois, Вы писали:
Q>
Да-да, трюк известный! Я его применял еще на заре своей деятельности как программиста. Но, помнится, как-то раз мне за такое надавали линейкой по рукам и сказали, что "битхаки нам тут не нужны". Мол, современные оптимизаторы (Visual Studio 5.0 ) и сами умеют выполнять такие преобразования, поэтому текст программы должен быть ориентирован на человека, в первую очередь. Можно сказать, травма детства
Ну и соображение вдогонку: этот же самый финт можно проделать и в примере на C#. Так что, думаю, что это не та оптимизация, которая способна изменить баланс сил.
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#. Так что, думаю, что это не та оптимизация, которая способна изменить баланс сил.