Computer Systems:A Programmer's Perspective

深入理解计算机系统(第五章)

Posted by LT on July 24, 2020

略读

第五章 优化程序性能

  1. 编写高效程序需要做到:
    • 第一,适当的算法和数据结构。
    • 第二,编写出编译器能够有效优化以转换成高效可执行代码的源代码。
      • 消除连续的函数调用。在可能时,将计算移到循环外。考虑有选择地妥协程序的模块性以获得更大的效率。
      • 消除不必要的内存引用。引入临时变量来保存中间结果。只有在最后的值计算出来时,才将结果存放到数组或全局变量中。
        • 临时变量累积值存放在局部变量acc(寄存器保存acc)中,消除了每次循环迭代中从内存中读出并将更新值写回的需要。
    • 第三,并行。针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。(第12章)
  2. 第6章探究高速缓存是如何工作的。
    • 加载:从内存读到寄存器;
    • 存储:从寄存器写到内存。