私は ARM デバイスで拡張現実用の C++ コードを開発してきましたが、良好なフレーム レートを維持するには、コードの最適化が非常に重要です。効率を最大限に高めるためには、コンパイラの作業を楽にし、プログラムのサイクル数を減らすための一般的なヒントを収集することが重要だと思います。どんな提案でも大歓迎です。
1-高コストの命令を避ける: 除算、平方根、sin、cos
- 論理シフトを使用して、2 で除算または乗算します。
- 可能であれば、逆数を掛けます。
2-内部の「for」ループを最適化します。これらはボトルネックであるため、特に除算や平方根など、内部で多くの計算を行うことは避ける必要があります。
3-いくつかの数学関数 (sin、cos、...) のルックアップ テーブルを使用します。
便利なツール
- objdump: コンパイルされたプログラムのアセンブリ コードを取得します。これにより、2 つの関数を比較して、本当に最適化されているかどうかを確認できます。