系统软件优化学习路线图

入门:

推荐教材

  • 《计算机组成与设计:软硬件接口》
    • 了解CPU的基本特性与实现,内存的基本特点
  • 《计算机系统要素:从零出发构建计算机系统》
    • 了解软硬件栈(重实践、轻原理):涵盖与非门、组合逻辑、ALU、CPU、汇编器、虚拟机、编译器和操作系统。

中阶:

推荐教材

  • 《深入理解计算机系统》第五章
    • 了解硬件特性与软件性能之间的关系(仅限指令级并行部分),并提供高性能编程实践
  • 《Performance Analysis and Tuning on Modern CPU》
    • 全面了解硬件特性与软件性能之间密切关系,并提供高性能编程实践
    • Intel性能工程师写作,开源实现,英文版免费下载
    • 中文版豆瓣链接

高阶(自动化方法)

推荐教材或课程

  • 南京大学《软件分析》(B站有视频)
    • 讨论自动化的程序分析方法。自动化的程序分析,可以应用于程序的安全风险识别,也可以用于程序的性能优化。
    • 课程链接
  • 编译原理《Compilers: Principles, Techniques and Tools》(dragon book)第9-12章
    • 讨论自动化的程序分析方法。同时,结合硬件特点,全面讲解了基于编译的性能优化方法的原理——编译优化,涵盖机器无关优化、机器相关优化(指令级并行、寄存器分配)、并行优化与局部性。

Table of contents