C ++ Porady dotyczące optymalizacji kodu na urządzeniach ARM
Tworzę kod C ++ dla rzeczywistości rozszerzonej na urządzeniach ARM, a optymalizacja kodu jest bardzo ważna, aby utrzymać dobrą szybkość klatek. Aby zwiększyć wydajność do maksymalnego poziomu, uważam, że ważne jest zebranie ogólnych wskazówek, które ułatwią życie kompilatorom i zmniejszą liczbę cykli programu. Wszelkie sugestie są mile widziane.
1-Unikaj kosztownych instrukcji: podział, pierwiastek kwadratowy, grzech, cos
Użyj przesunięć logicznych, aby podzielić lub pomnożyć przez 2.Pomnóż przez odwrotność, jeśli to możliwe.2- Optymalizujwewnętrzne pętle „for”: są botleneck, więc powinniśmy unikać wykonywania wielu obliczeń, zwłaszcza podziałów, pierwiastków kwadratowych ..
3- ZastosowanieTabele wyszukiwania dla niektórych funkcji matematycznych (grzech, cos, ...)
UŻYTECZNE NARZĘDZIA
objdump: pobiera kod zespołu skompilowanego programu. Pozwala to porównać dwie funkcje i sprawdzić, czy jest naprawdę zoptymalizowana.