前言
高效程序:1. 适当的算法和数据结构。1. 将源代码编码成能够被编译器优化成高效可执行代码(消除连续的函数调用,消除不必要的内存引用)。3, 将运算量特别大的计算任务分成多个部分,这些部分可在多核和多处理器的某种组合上并行计算(第12章)(展开循环,多个累计变量,重新结合,条件转移)。
5.1优化编译器的能力和局限性
指针与指针操作,函数调用一般很少优化。因为会副作用。
函数调用,编译器会使用内联替换来优化。
一些情况下,最好阻止内联替换,1. 用符号调试器(如gdb)评估代码时,2. 用代码剖析评估程序性能时,等等。
5.2表示程序性能
每元素周期数CPE(斜率),循环展开,最小二乘拟合。
5.3程序示例
32位和64位整数或单双精度浮点数操作性能都相同(除了除法)。
5

本文详细探讨了优化程序性能的各种策略,包括选择合适的算法和数据结构,理解编译器优化的局限性,如何消除循环的低效率,减少过程调用,避免不必要的内存引用,以及提高并行性等。通过实例分析,阐述了循环展开、多个累积变量和重新结合变换等技术在提升程序性能中的作用,并讨论了现代处理器的特性,如超标量和乱序处理。同时,文章还提到了内存性能和分支预测对程序性能的影响。
最低0.47元/天 解锁文章
2115

被折叠的 条评论
为什么被折叠?



