研究Linux分页技术碰到著名的局部性原理
来源:互联网 发布:js注册事件 编辑:程序博客网 时间:2024/06/08 12:23
研究Linux分页技术碰到著名的局部性原理,查资料解释如下:
局部性原理(Principle of Locality)是一个由经验得出的结论:“一个程序90%的时间运行在10%的代码上”。
计算机程序从时间和空间都表现出“局部性”:
1)时间的局部性(Temporal Locality):最近被访问的内存内容(指令或数据)很快还会被访问;
2)空间的局部性(Spatial Locality):靠近当前正在被访问内存的内存内容很快也会被访问。
一个典型的例子就是几乎所有的程序都有循环代码。比如:
for(int i=0; i < 1000; i++)
for(int j=0; j < 200; j++)
a[i][j] = i*j;
这段代码从时间和空间上都表现出很强的局部性。
而对于存储器而言,存取速度越快的其成本越高。为了在成本和性能之间进行平衡,现代计算机体系架构往往选择:使用少量性能高但成本也高的存储器作为速度慢而成本也低的存储器的缓存。成本越高的存储器数量越少,但它们被设计为更靠近CPU,所以它们性能要比次级存储器高的多。
所以整个存储器层次是一个金字塔结构,如下图所示:
由于上层存储器是下层存储器的缓冲,基于局部性原理,使用这种架构是正确的选择。因为下层存储器中的数据一旦被装入上层存储器,就很有可能被多次用到,此时CPU则可以在更靠近它的性能也更高的存储器内找到其需要的数据,而不需要每次都要到离它更远,性能也更低的存储器内去存取它们。
在现代计算机软硬件体系架构下,不同层次的程序员看到的存储器层次也是不一样的。对于Application程序员,看到的只有虚拟内存,而对于系统程序员,比如操作系统程序员看到就是普通内存,而对于系统级Hardware Integration程序员,则看到的是二级cache,对于芯片级别的Hardware程序员,看到的则是一级cache。
但无论你是哪个级别的程序员,如果你能够了解更低层的存储器原理,则可能优化你的程序,让你的程序性能更高。而对于OS程序员而言,了解一,二级cache的机制,则可以优化其开发的操作系统。
- 研究Linux分页技术碰到著名的局部性原理
- 程序的局部性原理
- 程序的局部性原理
- 局部性原理
- 局部性原理
- 局部性原理
- 局部性原理
- 局部性原理
- 随笔七:高速缓存的局部性原理
- 空间,时间局部性原理的具体应用
- 对局部性原理的一点理解
- 对局部性原理的一点点理解
- 局部性原理【读书摘记】
- 局部性原理与高速缓存
- 程序局部性原理
- 时间空间局部性原理
- 局部性原理浅析——良好代码的基本素质
- 局部性原理浅析——良好代码的基本素质
- 如何使用SQL Profiler 性能分析器
- 封装CTelephoney的方法,包括获取IMEI,IMSI,品牌,型号,系统版本号,打电话功能
- 【china-pub豆瓣赠书啦】20册超值赠书任你选
- 基础研究--libtorrent库的使用
- 修改缩略图大小
- 研究Linux分页技术碰到著名的局部性原理
- jquery 跨iframe 遮罩层
- ClearCase的lincense获得时间
- VS.NET中自定义安装程序制作经验总结
- 不要害怕复杂
- vlc的应用之二:vlc的ActiveX及cab
- 转载: VC,状态栏上对话框大小与实际像素关系
- SQL中给传参数的方法
- 设计模式之桥接模式(Bridge)之三(典型结构图) 结构型模式