如何通过优化缓存策略提升数据命中率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3767个文字,预计阅读时间需要16分钟。
开篇+编写高效的程序不仅在于算法的精巧,还应该考虑到计算机内部的组成结构,CPU微指令的执行,存储的组织和工作原理等。+优秀的算法在实际中不见得有高效率,除非完全考虑。
开篇
编写高效的程序并不只在于算法的精巧,还应该考虑到计算机内部的组织结构,cpu微指令的执行,缓存的组织和工作原理等。
好的算法在实际中不见得有高效率,如果完全没有考虑缓存、微指令实现的话。
前两篇博文
局部性原理浅析介绍了程序的局部性原理,如何写出局部性良好代码。
提高程序性能、何为缓存讨论了存储器层次结构,计算机内部的存储结构、缓存的概念,简单的介绍了缓存的工作机制。
建议先阅读前两篇博文,虽然他们之间联系不大,在前面也有一些对本文的铺垫。而且,这是一个系列的文章。旨在优化程序性能。
这篇博文主要介绍的是缓存的组织、工作原理。拨开迷雾,让你更加清晰的认识缓存。
通用缓存结构
回顾
在提高程序性能、何为缓存中提到:早起的cpu存储层次只有三层,即cup的寄存器,DRAM主存和磁盘存储。因为寄存器和主存之间的访问时间开销差距很大,于是设计者在寄存器(一个时钟周期)和主存之间加入了L1缓存(2——4个时钟周期),后来由于L1缓存和主存之间的差距,又在主存和L1之间加入了L2缓存,当然后面还有L3缓存,,,等等。
在这里为了简单起见,假设CPU寄存器和主存之间只有一个L1缓存。
本文共计3767个文字,预计阅读时间需要16分钟。
开篇+编写高效的程序不仅在于算法的精巧,还应该考虑到计算机内部的组成结构,CPU微指令的执行,存储的组织和工作原理等。+优秀的算法在实际中不见得有高效率,除非完全考虑。
开篇
编写高效的程序并不只在于算法的精巧,还应该考虑到计算机内部的组织结构,cpu微指令的执行,缓存的组织和工作原理等。
好的算法在实际中不见得有高效率,如果完全没有考虑缓存、微指令实现的话。
前两篇博文
局部性原理浅析介绍了程序的局部性原理,如何写出局部性良好代码。
提高程序性能、何为缓存讨论了存储器层次结构,计算机内部的存储结构、缓存的概念,简单的介绍了缓存的工作机制。
建议先阅读前两篇博文,虽然他们之间联系不大,在前面也有一些对本文的铺垫。而且,这是一个系列的文章。旨在优化程序性能。
这篇博文主要介绍的是缓存的组织、工作原理。拨开迷雾,让你更加清晰的认识缓存。
通用缓存结构
回顾
在提高程序性能、何为缓存中提到:早起的cpu存储层次只有三层,即cup的寄存器,DRAM主存和磁盘存储。因为寄存器和主存之间的访问时间开销差距很大,于是设计者在寄存器(一个时钟周期)和主存之间加入了L1缓存(2——4个时钟周期),后来由于L1缓存和主存之间的差距,又在主存和L1之间加入了L2缓存,当然后面还有L3缓存,,,等等。
在这里为了简单起见,假设CPU寄存器和主存之间只有一个L1缓存。

