我一直在为 ARM 设备上的增强现实开发 C++ 代码,代码的优化对于保持良好的帧速率非常重要。为了将效率提高到最高水平,我认为收集使编译器的生活更轻松并减少程序循环次数的一般技巧很重要。欢迎任何建议。
1-避免高成本指令:除法、平方根、sin、cos
- 使用逻辑移位除以或乘以 2。
- 尽可能乘以倒数。
2-优化内部“for”循环:它们是一个瓶颈,所以我们应该避免在内部进行很多计算,尤其是除法、平方根。
3-对一些数学函数(sin、cos、...)使用查找表
有用的工具
- objdump:获取已编译程序的汇编代码。这允许比较两个函数并检查它是否真的被优化。