5 c optimization gcc micro-optimization
我正在寻找程序员在C中可以做什么,它可以确定生成的目标文件的性能和/或大小.
例如,
1.将简单的get/set函数声明为inline可能会提高性能(以更大的占用空间为代价)
2.对于不使用循环变量本身值的循环,倒计时到零而不是计数到一定的价值等
看起来编译器现在已经发展到了一个"简单"技巧(如上面的两点)根本不需要的水平.编译期间适当的选项无论如何都可以完成工作.哎呀,我还看到了关于编译器如何处理递归的帖子 - 这非常有趣!那么我们还要做什么呢?:)
我的具体环境是:GCC 4.3.3重新针对ARM架构(v4).但是对其他编译器/处理器的响应也是受欢迎的,并且将被扼杀.
PS:我的这种做法违背了通常的"代码优先!然后基准,最后优化"的方法.
编辑:就像它发生的那样,在发布问题之后我发现了一个类似的帖子:我们还应该优化"在小"吗?
我可以想到的一件事,编译器可能不会优化"缓存友好性":如果你以行主要顺序迭代二维数组,比如说,确保你的内部循环遍及列索引避免缓存颠簸.内循环运行错误的索引可能会导致巨大的性能损失.
这适用于所有编程语言,但如果您使用C编程,性能可能对您很重要,因此它尤为重要.