序言
CPU 是所有软件的运行的基础,通常是系统性能分析的首要目标。
现代系统一般有多颗CPU,通过内核调度器共享给所有运行软件。当需求的CPU 资源超过了系统力所能及的范围时,进程里的线程将会排队,等待轮候自己运行的机会。等待给应用程序的运行带来严重延时,使得性能下降。
我们可以通过仔细检查CPU 的用量,寻找性能改进的空间,还可以去除一些不需要的负载。
从上层来说,可以按进程、线程或者任务来检查CPU 的用量。从下层来看,可以剖析并研究应用程序和内核里的代码路径。在底层,可以研究CPU 指令的执行和周期行为。
术语
- 处理器:插到系统插槽或者处理器板上的物理芯片,以核或者硬件线程的方式包含了一块或者多块CPU。
- 核:一颗多核处理器上的一个独立CPU 实例。核的使用是处理器扩展的一种方式,又称为芯片级多处理(chip-level multiprocessing,CMP)。
- 硬件线程:一种支持在一个核上同时执行多个线程(包括Intel 的超线程技术超线程_百度百科)的CPU架构,每个线程是一个独立的CPU 实例。这种扩展的方法又称为多线程。
- CPU 指令:单个CPU 操作,来源于它的指令集。指令用于算术操作、内存I/O