Советы по C++ по оптимизации кода на устройствах ARM

Я разрабатывал код C++ для дополненной реальности на устройствах ARM, и оптимизация кода очень важна для того, чтобы сохранить хорошую частоту кадров. Чтобы поднять эффективность до максимального уровня, я думаю, важно собрать общие советы, которые облегчить жизнь компиляторам и сократить количество циклов программы. Любое предложение приветствуется.

1- Избегайте дорогостоящих инструкций: деление, квадратный корень, sin, cos

  • Используйте логические сдвиги для деления или умножения на 2.
  • По возможности умножайте на обратное.

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

3- Использовать поиск таблицыдля некоторых математических функций (sin, cos, ...)

ПОЛЕЗНЫЕ ИНСТРУМЕНТЫ

  • objdump: получает ассемблерный код скомпилированной программы. Это позволяет сравнить две функции и проверить, действительно ли они оптимизированы.
17
задан Jav_Rock 30 May 2012 в 10:17
поделиться