C ++ Советы по оптимизации кода на устройствах ARM
Я разрабатывал код C ++ для дополненной реальности на устройствах ARM, и оптимизация кода очень важна для того, чтобы сохраняйте хорошую частоту кадров. Чтобы поднять эффективность до максимального уровня, я думаю, что важно собрать общие советы, которые упростить жизнь компиляторам и сократить количество циклов программы. Любое предложение приветствуется.
1- Avoid high-cost instructions: деление, квадратный корень, грех, cos
Use logical shifts to divide or multiply by 2. Multiply by the inverse when possible.2- Оптимизироватьinner "for" loops: они узкие места, поэтому мы должны избегать многих вычислений внутри, особенно делений, квадратных корней ..
3- Использованиеlook-up tables для некоторых математических функций (sin, cos, ...)
USEFUL TOOLS
objdump: gets assembly code of compiled program. This allows to compare two functions and check if it is really optimized.