真正高性能的程序设计
more small, more fast
more simple, more fast
更小的代码更快
更简单的代码更快
现代计算机的体系,速度往往取决于CPU cache 的命中情况。
因此,更小、更简单的代码往往会获得更好的性能。
l 删除冗余代码,和一般理解相反,放在那里不动的代码即使没有使用也会影响系统的性能。
l 不要低估或者高估编译器的优化,除了代码本身所能提供的信息以外,编译器永远不知道你到底要做什么。
l 不要梦想复用,在代码级重复使用你代码的可能性接近于0
l 层层的封装是效率的杀手
l 动态运行时解析,类型….带来的问题远远大于所承诺的好处。
l 专用、专用再专用,把你的代码限制在一个非常具体的场景中,通用的代码往往意味着低效、潜在的误用和其他错误。
l 不要做期待之外的事情,所有的bonus都是要付出代价的!
l 优化最常见的情况,而不是最糟糕的情况。
l 内存分配和释放是非常昂贵的操作(从时间上,稳定性上都是)
l 不要想象,使用工具观察你的代码,vTune或者gProf等等,只有这样才能发现真正的瓶颈所在。