C ++ - Tipps zur Codeoptimierung auf ARM-Geräten
Ich habe C ++ - Code für Augmented Reality auf ARM-Geräten entwickelt und die Optimierung des Codes ist sehr wichtig, um eine gute Bildrate beizubehalten. Um die Effizienz auf das Maximum zu steigern, halte ich es für wichtig, allgemeine Tipps zu sammeln, die den Compilern das Leben erleichtern und die Anzahl der Cicles des Programms verringern. Jeder Vorschlag wird begrüßt.
1-Vermeiden Sie teure Anweisungen: Division, Quadratwurzel, Sünde, cos
Verwenden Sie logische Verschiebungen, um durch 2 zu teilen oder zu multiplizieren.Nach Möglichkeit mit der Umkehrung multiplizieren.2- Optimiereninnere "for" Schleifen: Sie sind ein Flaschenhals, deshalb sollten wir vermeiden, viele Berechnungen in Innenräumen durchzuführen, insbesondere in Teilungen, Quadratwurzeln.
3- VerwendenNachschlagetabellen für einige mathematische Funktionen (sin, cos, ...)
NÜTZLICHE HILFSMITTEL
objdump: Ruft den Assembler-Code des kompilierten Programms ab. Auf diese Weise können zwei Funktionen verglichen und überprüft werden, ob sie wirklich optimiert sind.