因为CPU中的读取速度是比内存要快很多的。所以我们把一些数据通过CPU缓存能够显著提升性能。
而数组在内存中是占据连续的内存空间的,而CPU在从内存中读取数据的时候会把该内存地址后面的一部分数据也缓存进去。这样CPU在访问数组数据的时候先从CPU缓存的数组中寻找,找不到再从内存中复制。
这也就是CPU缓存的意义,为了弥补内存访问速度过慢和CPU执行速度过快的差异而应用。
而链表在内存中是以不连续的碎片的方式存储的。CPU并不能把后续的链表数据缓存起来,自然也没有性能的提升了。
CPU缓存机制对数组性能的提升
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- CPU Cache 今天的CPU比25年前更复杂。那时候,CPU内核的频率与内存总线的频率相当。内存访问只比寄存器...
- 链表(上):如何实现LRU缓存淘汰算法? 今天我们来聊聊“链表(Linked list)”这个数据结构。学习链表有...