目录
1.金字塔图
2.形象理解的图
3.分析
4.推荐阅读
1.金字塔图
2.形象理解的图
3.分析
缓存的大小<<内存的大小
缓存分三级:速度:一级>二级>三级
在95.【C语言】数据结构之双向链表的头插,头删,查找,中间插入,中间删除和销毁函数文章遗留了一个问题,缓存命中率是什么?
答:在63.【C语言】再议结构体(上)文章提到了数据结构的定义: 数据在内存中的存储结构
当想对顺序表或链表的每个位置进行遍历访问(读或写)时,CPU会读取缓存中的数据,如果缓存中有顺序表或链表的数据,则称为命中,反之不命中,若不命中,CPU会要求将内存中的数据加载到缓存中,而且一次性会加载多个字节(具体加载多少和硬件有关)
加载多个字节可以用局部性原理来概括:(摘自百度百科)指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中,由于数组在本质上是一块连续的内存空间,因此缓存的命中率高,链表靠指针访问,不连续,,因此缓存的命中率低(缓冲污染:加载了没用的数据,对于链表的访问会经常发生)
4.推荐阅读
https://coolshell.cn/articles/20793.html