内存性能指什么,正确解读看这 (内存的性能主要体现在什么和什么上)
整理分享内存性能指什么,正确解读看这 (内存的性能主要体现在什么和什么上),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:内存的性能指标是什么?,内存的性能指标是什么?,内存性能是指内存条吗,内存的性能指标主要有哪些,内存的性能指标主要有哪些,内存性能指的是什么,内存 性能,内存性能是指内存条吗,内容如对您有帮助,希望把内容链接给更多的朋友!
内存性能指什么 图1 2.内存与时延 显然,越靠近处理器,取数据的速度越块,通过LMBench进行了读数延迟的测验。内存性能指什么 图2 从上图可以看出:Intel(R)Xeon(R)Platinum处理器@2.GHz这款处理器的L1DCache,L1ICache为KB,而L2Cache为1M,L3为M;在对应的Cache中,时延是稳定的;不一样缓存的时延呈现指数级增长; 所以我们在写业务代码的时候,如果想要更快地提升效率,那么使得计算更加贴近处理器则可以获得更好的性能。但是从上图也可以看出,内存的时延都是纳秒为单位,而实际业务中都是毫秒为单位,优化的重点应该是那些以毫秒为单位的运算,而内存时延优化这块则是长尾部分。 3.内存带宽 内存时延与缓存其实可谓是紧密相关,不理解透彻了,则可能测的是缓存时延。同样测验内存带宽,如果不是正确的测验,则测的是缓存带宽了。 为了了解内存带宽,有必要去了解下内存与处理器的架构,早期的处理器与内存的架构还需要经过北桥总线,现在处理器与内存直接已经不需要北桥,直接通过处理器的内存*(IMC)进行内存读取*作: 那对应的内存带宽是怎样的呢?测验内存带宽有很多很多工具,linux下一般通过stream进行测验。简单介绍下stream的算法:内存性能指什么 图3 stream算法的原理从上图可以看出非常简单:某个内存块之间的数据读取出来,经过简单的运算放入另一个内存块。那所谓的内存带宽:内存带宽=搬运的内存大小/耗时。通过整机合理的测验,可以测出来内存*的带宽。下图是某云产品的内存带宽数据:-------------------------------------------------------------FunctionBestRateMB/sAvgtimeMintimeMaxtimeCopy:....Scale:....Add:....Triad:....------------------------------------------------------------- 内存带宽的重要性自然不言而喻,这意味着*作内存的最大数据吞吐量。但是正确合理的测验非常重要,有几个注意事项需要关心:内存数组大小的设置,必须要远大于L3Cache的大小,否则就是测验缓存的吞吐性能;处理器数目很有关系,一般来说,一两个核的计算能力,是远远到不了内存带宽的,整机的处理器所有运行起来,才可以有效地测验内存带宽。当然跑单核的stream测验也有意义,可以测验内存的延时。 4.其他内存与NUMA的关系:开启NUMA,可以有效地提供内存的吞吐性能,降低内存时延。stream算法的编译方式选择:通过icc编译,可以有效地提供内存带宽性能分。原因是Intel优化了处理器的指令,通过指令向量化和指令Prefetch*作,加速了数据的读写*作以及指令*作。当然其他C代码都可以通过icc编译的方式,提供指令的效率。 以上就是关于内存性能指什么问题的解答。