局部性原理的点滴应用场景 use of localityprinciple

话说九月份博士入学面试的时候被问到了一个问题:请说明一下局部性原理在计算机科学中的应用场景?(哈哈,不记得怎么问的了,大概是这个意思)但是巴拉巴拉整半天却也只说出了一个Cache,后来补充的也都是跟Cache相关的,就是没能跳出Cache,哎~~于是就想写这个博客了,但是苦于涉及的面实在太广,于是乎,遇到一个写一个吧。

首先,Cache肯定算一个,设计Cache也是为了性能考虑,主要是为了解决内存和磁盘之间的速度差问题,而将近期访问的一部分数据保存在内存中以便下次直接可以提取,从而加速。围绕Cache的局部性原理可以看做是一类吧,不展开了。

第二,设计文件系统FFS的时候,将磁盘空间划分为许多组(cylinder group),然后存储文件的时候呢,将同一文件的数据尽量存在同一个组内,同一文件夹下的文件也尽量存放于一个组内。同一个文件夹下的文件很可能会被在很短的时间内连续访问,这样一来就会有助于性能的提升。注意,用词是“尽量”,这是一个原则,具体实现的时候有点区别,这里也不展开了。

第三,磁盘读取数据的时候是按照扇区来读取的,那么很多情况下我们需要读取相邻扇区的数据(同一个文件可能占有连续的扇区,等等吧),每次只读一个扇区那么多麻烦啊,哈哈,不如就直接把当前磁道的所有数据读出来,存在disk cache( track buffer)中,这就好了啊。

第四,其实浏览器的 历史浏览记录 就是局部性原理的体现啊,哈哈,唉,其实也是一种简单的Cache!

先这样吧,遇到了再写吧。

时间: 2024-08-25 03:43:33

局部性原理的点滴应用场景 use of localityprinciple的相关文章

程序的局部性原理2

当CPU发出写操作命令时,也要根据它产生的主存地址分为两种情形:一种是不命中时,只向主存写入信息,不必同时把这个地址单元所在的整块内容调入Cache中:另一种是命中时,这时会遇到如何保持Cache与主存的一致性问题,通常有三种处理方式: 1.直写式(write through)即CPU在向Cache写入数据的同时,也把数据写入主存以保证Cache和主存中相应单元数据的一致性,其特点是简单可靠,但由于CPU每次更新时都要对主存写入,速度必然受影响. 2.缓写式(post write)即CPU在更新

程序的局部性原理

程序的局部性原理 :是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分.相应地,执行所访问的存储空间也局限于某个内存区域. 局部性原理又表现为:时间局部性和空间局部性.时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问.空间局部性是指一旦程序访问了某个存储单元,则不久之后.其附近的存储单元也将被访问. 另外,根据程序的局部性理论,Denning提出了工作集理论.所谓工作集是指进程运行时被

局部性原理与高速缓存

http://blog.csdn.net/gaolinjie/article/details/4597356 局部性原理(Principle of Locality)是一个由经验得出的结论:"一个程序90%的时间运行在10%的代码上". 计算机程序从时间和空间都表现出"局部性": 1)时间的局部性(Temporal Locality):最近被访问的内存内容(指令或数据)很快还会被访问: 2)空间的局部性(Spatial Locality):靠近当前正在被访问内存的内

缓存机制与局部性原理

http://www.cnblogs.com/jqctop1/p/4714116.html 1. 局部性原理 局部性原理是指计算机在执行某个程序时,倾向于使用最近使用的数据.局部性原理有两种表现形式:时间局部性和空间局部性. 时间局部性是指被引用过的存储器位置很可能会被再次引用,例如:重复的引用一个变量时则表现出较好的时间局部性 空间局部性是指被引用过的存储器位置附近的数据很可能将被引用:例如:遍历二维数组时按行序访问数据元素具有较好的空间局部性 2. 缓存与缓冲 缓冲通常在接收者和发送者速度差

程序性能优化-局部性原理

更多文章 概念 一个编写良好的计算机程序常常具有良好的局部性,它们倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身,这种倾向性,被称为局部性原理.有良好局部性的程序比局部性差的程序运行得更快. 局部性通常有两种不同的形式: 时间局部性 在一个具有良好时间局部性的程序中,被引用过一次的内存位置很可能在不远的将来被多次引用. 空间局部性 在一个具有良好空间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置. 时间局部性示例 fun

HTTPS 原理剖析与项目场景

最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享. 为什么使用HTTPS HTTP 协议,本身是明文传输的,没有经过任何安全处理.那么这个时候就很容易在传输过程中被中间者窃听.篡改.冒充等风险.这里提到的中间者主要指一些网络节点,是用户数据在浏览器和服务器中间传输必须要经过的节点,比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等. HTTP 协议,中间者可以窃听隐私,使用户的敏感数据暴露无遗:篡改网页,例如往页面插的广告

python 装饰器语法糖(@classmethod @staticmethod @property @name.)原理剖析和运用场景

引用:http://blog.csdn.net/slvher/article/details/42497781 这篇文章系统的介绍这几者之间的关系和区别.有兴趣的朋友可以到上面的链接查看原文,这里我把原文拷贝如下(如有侵权,通知马上删除) ==================================================================== 在阅读一些开源Python库的源码时,经常会看到在某个类的成员函数前,有类似于@staticmethod或@classme

Canal——原理架构及应用场景

Canal简介 Canal是阿里开源的一款基于Mysql数据库binlog的增量订阅和消费组件,通过它可以订阅数据库的binlog日志,然后进行一些数据消费,如数据镜像.数据异构.数据索引.缓存更新等.相对于消息队列,通过这种机制可以实现数据的有序化和一致性. github地址:https://github.com/alibaba/canal 完整wiki地址:https://github.com/alibaba/canal/wiki Canal工作原理 原理相对比较简单: canal模拟mys

nginx之旅(第四篇):nginx限速原理、nginx限速场景、nginx限速实现

一.nginx限速 在生产环境中,为了保护WEB服务器的安全,我们都会对用户的访问做出一些限制,保证服务器的安全及资源的合理分配. 限流(rate limiting)是NGINX众多特性中最有用的,也是经常容易被误解和错误配置的,特性之一访问请求限速.该特性可以限制某个用户在一个给定时间段内能够产生的HTTP请求数.请求可以简单到就是一个对于主页的GET请求或者一个登陆表格的POST请求.用于安全目的上,比如减慢暴力密码破解攻击.通过限制进来的请求速率,并且(结合日志)标记出目标URLs来帮助防