12.10
5-移除计算
除了内存分配和函数调用外,单条 C++ 语句的性能开销通常都很小。但是如果在循环中
执行 100 万次这条语句,或是每次程序处理事件时都执行这条语句,那么这就是个大问题
了。绝大多数程序都会有一个或多个主要的事件处理循环和一个或多个处理字符的函数。
找出并优化这些循环几乎总是可以让性能优化硕果累累。
以性能优化为主题的文献介绍了许多高效地使用单独的 C++ 语句的技巧。许多程序员相信
这些诀窍是优化的基础。这种看法的问题在于,除非一段代码真的是热点代码(被频繁地
执行的代码),否则从中移除一两句内存访问对程序的整体性能不会有什么改善。
现代 C++ 编译器在进行这些局部改善方面也做得非常优秀了。因此,开发人员不
应当有强迫症,将大段代码中的出现的 i++ 都换成 ++i,或是展开所有的循环,不遗余力
地向每位同事讲解什么是达夫设备(Duff’s Device)8 以及它的优点