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

Сообщение Re[4]: Вопрос на элегантность решения от 13.10.2014 1:26

Изменено 13.10.2014 1:38 BulatZiganshin

Здравствуйте, vsb, Вы писали:

vsb>Как отнесётся современный процессор к такому коду, с его branch predictions, я не совсем понимаю и было бы интересно услышать. Вполне может быть, что поиск второй цифры делениями на 10 будет быстрей.


деление ещё хуже (10-100 тактов), умножения будут лучше. но лучше использовать твой подход, только с линейным поиском. тогда у нас будет всего один ошибочно предсказанный переход (выход из цикла), и 5-10 удлачно предсказанных, которые обойдутся в 0.5-1 такта на переход

а для того чтобы "совсем понимать" — читай агнера фога: http://www.agner.org/optimize/
Re[4]: Вопрос на элегантность решения
Здравствуйте, vsb, Вы писали:

vsb>Как отнесётся современный процессор к такому коду, с его branch predictions, я не совсем понимаю и было бы интересно услышать. Вполне может быть, что поиск второй цифры делениями на 10 будет быстрей.


деление ещё хуже (10-100 тактов), умножения будут лучше. Edit: на самом деле деление на константу реализуется умнодением на обратное число, так что будет однофигственно. но задержка умножения — 3 такта, что явно не сравнить с поиском по степеням 10 или 100

но лучше использовать твой подход, только с линейным поиском. тогда у нас будет всего один ошибочно предсказанный переход (выход из цикла), и 5-10 удлачно предсказанных, которые обойдутся в 0.5-1 такта на переход

а для того чтобы "совсем понимать" — читай агнера фога: http://www.agner.org/optimize/