Я разрабатываю С++-код для расширенной реальности на устройствах ARM, и оптимизация кода очень важна для того, чтобы сохраняйте хорошую частоту кадров. Чтобы повысить эффективность до максимального уровня, думаю, важно собрать общие советы, которые упростить жизнь компиляторам и сократить количество файлов программы. Любые предложения приветствуются.
1- Избегайте дорогостоящих инструкций: деление, квадратный корень, sin, cos
- Используйте логические сдвиги для разделения или умножения на 2.
- Умножьте по возможности наоборот.
2- Оптимизируйте внутренние "для" циклов: они являются ботленеком, поэтому нам следует избегать множества вычислений внутри, особенно делений, квадратных корней.
3 Используйте таблицы поиска для некоторых математических функций (sin, cos,...)
ПОЛЕЗНЫЕ ИНСТРУМЕНТЫ
- objdump: получает код сборки скомпилированной программы. Это позволяет сравнить две функции и проверить, действительно ли она оптимизирована.