1、数组与链表对cpu缓存的友好性差异
因为CPU中的读取速度是比内存要快很多的。所以我们把一些数据通过CPU缓存能够显著提升性能。
而数组在内存中是占据连续的内存空间的,而CPU在从内存中读取数据的时候会把该内存地址后面的一部分数据也缓存进去。这样CPU在访问数组数据的时候先从CPU缓存的数组中寻找,找不到再从内存中复制。
这也就是CPU缓存的意义,为了弥补内存访问速度过慢和CPU执行速度过快的差异而应用。
而链表在内存中是以不连续的碎片的方式存储的。CPU并不能把后续的链表数据缓存起来,自然也没有性能的提升了。
而数组在内存中是占据连续的内存空间的,而CPU在从内存中读取数据的时候会把该内存地址后面的一部分数据也缓存进去。这样CPU在访问数组数据的时候先从CPU缓存的数组中寻找,找不到再从内存中复制。
这也就是CPU缓存的意义,为了弥补内存访问速度过慢和CPU执行速度过快的差异而应用。
而链表在内存中是以不连续的碎片的方式存储的。CPU并不能把后续的链表数据缓存起来,自然也没有性能的提升了。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步