C # / XNA - Умножение быстрее, чем деление?

Недавно я увидел твит, который меня смутил (он был отправлен кодировщиком XNA в контексте написания игры XNA):

Совет дня по микрооптимизации: когда это возможно, используйте умножение вместо деления в высокочастотных областях. Это на несколько циклов быстрее.

Я был весьма удивлен, потому что всегда считал компиляторы довольно умными (например, с использованием битового сдвига), и недавно прочитал сообщение Шона Харгривза, в котором говорится примерно то же самое ]. Я задавался вопросом, насколько это правдиво, ведь в моей игре много вычислений.

Я спросил, надеясь получить образец: однако оригинальный плакат не смог предоставить его. Однако он сказал следующее:

Не обязательно, когда это что-то вроде «center = width / 2». И я уже определил «да, оно того стоит». :)

Мне любопытно ...

Кто-нибудь может привести пример кода, в котором можно изменить деление на умножение и получить прирост производительности, в то время как компилятор C # не мог этого сделать то же самое.

9
задан Danny Tuppeny 19 February 2011 в 23:01
поделиться