性能调优难题
下图为vs2010采用CPU采样的性能分析报告(release版本),其中红线部分相当困惑,为什么开销这么大?
release的反汇编如下:
debug的反汇编如下:
从反汇编来看,release将cmp优化成test。
[解决办法]
慢的不是cmp是jne
[解决办法]
在用人脑判断效率瓶颈之前,请先用Profiler工具。
[解决办法]
if的命中率的问题吧
[解决办法]
用C语言1000行源码能完成的工作千万不要用C++重写!
[解决办法]
这个差别貌似可以忽略不计。
那个1.1%就算降到0.1%也没有意义。
[解决办法]
一个简单语句被调用100000次也会比复杂指令调用1次耗时
[解决办法]
单纯看汇编不会这么慢,是不是后面的跳转遇到上下文切换了。Lz多测几次,取个平均看看