1.向量化执行引擎
“能升级硬件解决的问题,千万别优化程序”这句话虽然有点调侃的味道,但有时候优化程序带来的性能提升,还真不如直接升级硬件来的简单直接。硬件层面的优化确实是最直接、最高效的方式之一。
向量化执行,就是利用寄存器硬件层面的特性,为上层应用程序的性能带来了指数级的提升。
为了实现向量化执行,需要利用CPU的SIMD(Single Instruction Multiple Data,即用单条指令操作多条数据)命令,它是通过数据并行来提高性能,原理就是在CPU寄存器层面实现数据的并行操作。
(1)CPU
中央处理单元(Cntral Pocessing Uit)的缩写,也叫处理器,是计算机的运算核心和控制核心。人靠大脑思考,电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用。
从功能方面来看,CPU的内部由寄存器,控制器,运算器和时钟四部分构成,各部分之间由电流信号相互连通。
1)寄存器:可用来暂存指令,数据等处理对象,可以将其看做是内存的一种。根据种类的不同,一个CPU内部会有20~100个寄存器。
2)控制器:负责把内存上的指令,数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
3)运算器:负责运算从内存读入寄存器的数据。
4)时钟:负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。
(2)内存
内存:
负责硬盘等硬件上的数据与CPU之间数据交换处理;
缓存系统中的临时数据。
断电后数据丢失。
(3)CPU缓存
CPU缓存的定义为CPU与内存之间的临时数据交换器,它的出现是为了解决CPU运行处理速度与内存读写速度不匹配的矛盾——缓存的速度比内存的速度快得多。
三级缓存(包括L1一级缓存、L2二级缓存、L3三级缓存)都是集成在CPU内的缓存,它们的作用都是作为CPU与主内存之间的高速数据缓冲区,L1最靠近CPU核心;L2其次;L3再次。运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。CPU会先在最快的L1中寻找需要的数据,找不到再去找次快的L2,还找不到再去找L3,L3都没有那就只能去内存找了。
(4)磁盘
硬盘:存储资料和软件等数据的设备,有容量大、断电数据不丢失的特点。
典型计算机的存储层次结构如下图所示,存储媒介距离CPU越近,则访问数据的速度越快。

可以看出寄存器访问数据的速度,是内存的300倍,是磁盘的30000 万倍。
秒的换算:s(秒)=1000ms(毫秒)=1000 000μs(微秒)=1000 000 000ns(纳秒)=1000 000 000 000ps(皮秒)
原文链接:https://blog.csdn.net/dajiangtai007/article/details/126018331




