Dicas C ++ para otimização de código em dispositivos ARM

Eu tenho desenvolvido código C ++ para realidade aumentada em dispositivos ARM e a otimização do código é muito importante para manter uma boa taxa de quadros. Para aumentar a eficiência até o nível máximo, acho importante colher dicas gerais que facilitem a vida dos compiladores e reduza o número de ciclos do programa. Qualquer sugestão é bem-vinda.

1-Evite instruções de alto custo: divisão, raiz quadrada, pecado, cos

Use mudanças lógicas para dividir ou multiplicar por 2.Multiplique pelo inverso quando possível.

2- otimizar"para" loops internos: eles são um botleneck então devemos evitar fazer muitos cálculos dentro, especialmente divisões, raízes quadradas ..

3- UsoTabelas de pesquisa para algumas funções matemáticas (sin, cos, ...)

FERRAMENTAS ÚTEIS

objdump: obtém o código assembly do programa compilado. Isso permite comparar duas funções e verificar se está realmente otimizado.