影响性能的主要因素:
CPU : 核心数量、线程数据量,(C/T), 越多越强大, 每个核心拥有自己的L1 和 L 2 和L2 和L2, L3 为 共 享 高 速 缓 存 , L 3 为共享高速缓存,L3 为共享高速缓存,L3目前能搞32M以上。
SRAM: 静态随机存取存储器,CPU和芯片组的基材,高速缓存,以速度为目标。
DRAM:动态随机存取存储器,主存基材,以更高带宽和存储为目标,读取耗时。
内存带宽: 以千兆字节每秒为单位,越高意味着I/O速度越高。
核心: 按序核心即指令按照顺序串行执行, 低功耗,省钱;乱序核心即指令按照操作可用性顺序执行,高功耗,贵。
瘦线程和胖线程:当两个线程共享一个核心时,必须共享所以核心的资源;一个线程对核心资源需求量少为瘦线程,需要大量核心资源的为胖线程;每个线程都是胖线程,增加线程数量会使大家都挣抢资源降低性能。
开发的方式:
1.读取零碎数据或频繁读写的数据,存储在高速缓存中,高速缓存读取速度快,能保证性能
2.以批量的方式访问存储器DRAM中数据,存储量大,一次读取整行慢,但放入高速缓存再操作性能能够提升,在DRAM中不适合频繁I/O单字节的数据,耗时
3.隔离,每个核心中有独立缓存,每个线程读写数据不多于高速缓存,各自独立,性能能够提升。
4.瘦线程、胖线程协调搭配提升性能,即指令多的和资源消耗大的线程一起搭配。
5.了解计算设备高速缓存每个层次的大小,尽量使程序控制在这个范围内。
L1$ : L1 有 32 K B 的 数 据 缓 存 , 32 K B 的 指 令 缓 存 , 总 量 64 K B , L 1 有32KB的数据缓存,32KB的指令缓存,总量64KB , L1 有32KB的数据缓存,32KB的指令缓存,总量64KB,L1的访问速度非常快(4个时钟),每个核心有独立的。
L2$ : 256KB, 不分数据和指令 ,访问速度很快(11~12个时钟),每个核心有独立的。
L3& : 15MB ,访问比DRAM快 ,(22个时钟),所以核心共享L3$
DRAM: 行读取访问,2KB~8KB, 访问速度很慢(200~400个时钟)