C/C++优化

Joh*_*0te 7 c c++ compiler-construction

在编程方面,我已经以非常优秀的方式成长,遗憾的是,高度优化的代码不是我的强项.我现在相当擅长C,通常可以用相当聪明的方式做事,但我仍然无法想出最优化的处理情况的方法.

一个例子是:

int strlen(const char* str)
{
    char* s;
    for (s=str; *s; ++s);
    return s-str;
}
Run Code Online (Sandbox Code Playgroud)

我自己也永远不会想到这一点.

那么,有什么好的资源可以让你看到像这样的优化代码?我想找一个我可以阅读它背后的理论的地方,编译器在后台做了什么让它变得有价值等等.

如果注意到一些资源用于研究优化数据结构以及应用于现实场景,那也是很好的,但这可能太多了.

Tom*_*sen 5

不要尝试微观优化.对于现代编译器,最好让编译器处理这些优化.最好花时间选择正确的算法,并为您的应用程序设计模式.找一个像样的分析器,并学习如何使用它.不要浪费你的时间试图弄清楚如何优化strlen.

关于如何进行这些微优化的参考我之前已经提到过,但很高兴再次这样做,Agner的指南非常出色,而且免费:)查看:http://www.agner.org/optimize/ 应该有很多指南.

BTW:strlen我遇到的最优化版本是由Agner制作的:http://www.agner.org/optimize/asmlib-instructions.pdf ,用汇编语言编写.;-)

  • 我部分同意.确实,选择算法和模式会更好_optimize_,但在我看来,一个优秀的程序员应该考虑他正在编写的代码.当只需要5行代码时,它就会丢掉10行代码(显然不是strlen的情况). (2认同)