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.