程序局部性原理

本文目的:使读者快速理解

本文定位:学习笔记

学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感

程序局部性原理

程序的局部性原理是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。它们倾向于引用的数据项邻近于其他最近引用过的数据项,或者邻近于最近自我引用过的数据项。

在现代计算机系统的各个层次,从硬件到操作系统、应用程序等,设计上都利用了局部性原理。比如缓存机制,CPU指令顺序处理等。

局部性通常有两种形式:时间局部性和空间局部性

时间局部性(temporal locality)

时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。强调数据的重复访问。

利用时间局部性,缓存在现代程序系统中扮演着重要角色,数据缓存,磁盘缓存,文件缓存等,极大提高数据的重复访问性能。而在程序设计中,循环体则是时间局部性常见的一个场景

空间局部性(spatial locality)

空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。强调连续空间数据的访问,一般顺序访问每个元素(步长为1)时具有最好的空间局部性,步长越大,空间局部性越差

参考

对本文有什么建议(内容、写作风格等),欢迎留言提出,感谢!

转载至链接:https://my.oschina.net/lichuangnk/blog/1830249

java 局部性原理_程序局部性原理相关推荐

  1. grpc通信原理_容器原理架构详解(全)

    目录 1 容器原理架构 1.1 容器与虚拟化 1.2 容器应用架构 1.3 容器引擎架构 1.4 Namespace与Cgroups 1.5 容器镜像原理 2 K8S原理架构 2.1 K8S主要功能 ...

  2. 分类计数原理与分步计数原理_分类计数原理与分步计数原理

    分类计数原理与分步计数原理 <分类计数原理与分步计数原理 ( 一 ) >教学设计 柳州地区民族高级中学 覃艳莉 相关教材 : 人民教育出版社的全日制普通高级中学教科书 ( 必修 ) < ...

  3. serverlet 原理_容器原理架构详解(全)

    目录 1 容器原理架构:容器与虚拟化.容器应用/引擎架构.Namespace与Cgroups.镜像原理 2 K8S原理架构:K8S主要功能.K8S 系统架构.Pod原理与调度 3 K8S存储方案:容器 ...

  4. java实现词法分析_编译原理(词法分析) Java 实现

    编译原理(词法分析) Java 实现 编译原理(词法分析) Java 实现 1. 项目目录 2. 需要解释的源代码 PROGRAM SOURCE; /*定义变量*/ VAR X, Y, Z:INTEG ...

  5. java图像识别算法_图像算法原理与实践——绪论

    本系列文章是写给程序源的数字图像处理教程,从最基础的知识来讲解数字图像处理专业知识,通过最基本的编码方式来实践相应的处理算法,从而使得大家掌握基础的图像处理知识. 关于图像处理知识,在高校课程中,比较 ...

  6. java制作网站的原理_代码生成器原理

    代码生成器原理很简单,用一句话概括就是:将数据库字段转换成Java字段并输出内容. 如下图所示: 因此,首先需要做的是获取表信息以及表的字段信息,一般有两种方式,第一种:连接到数据库,执行相关SQL, ...

  7. java aab全排列_编译原理习题课答案.ppt

    2)考虑下列产生式: FIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^} ...

  8. 编译原理java课程设计_编译原理课程设计词法分析

    一.课程设计任务及要求 1.1.目的 通过使用一个通用的能够自动根据正规表达式生成词法分析程序的工具程序设计一个简单语言的词法分析器,使学生充分理解课程理论内容和工具软件的使用技巧,掌握所涉及的典型数 ...

  9. java快排原理_快速排序原理及实现(java)

    高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 9 3 4 5 1 ...

最新文章

  1. Eclipse Gradle 构建多模块项目
  2. 中国通信企业投身罗马尼亚智慧城市建设
  3. redis集群扩容和缩容_Full-Stack-Notes
  4. 特征抽取--标签与索引的转化: IndexToString
  5. LG P990开机黑屏,但能进入系统的解决办法
  6. Java并发编程实战~CyclicBarrier
  7. DNS的一些相关基础知识
  8. JAVA8的双重循环怎么优化_Java8处理List的双层循环问题代码实例
  9. 六、基于UDP的服务器端/客户端
  10. 微信小程序添加外部字体方法
  11. 【数值优化之线搜索方法】
  12. 黑马程序员-黑马,人生的一个重要转折
  13. 共阳极数码管编码表_LED数码管你知道多少?
  14. 微信公众号语音内容提取下载
  15. 用Python生成动态二维码,只要5行代码,拥有你的个性二维码!
  16. Java-----投票系统
  17. Pycharm使用小技巧 - 如何设置背景图片
  18. linux安装redisDocker安装redis集群
  19. Trainmaster One Hundred Twenty
  20. 跟叶子学把妹——教程序猿把妹第七集

热门文章

  1. python 字节和字符串区别,Python中字节串和字符串,不是一个概念没有区别之分...
  2. 浅谈APP的分享功能,有时候社交裂变形式比内容更“重要”
  3. 四条命令搞定mysql主从
  4. 小学计算机室教室的简报,高新区第三小学开展“信息技术与教育教学融合创新发展”培训...
  5. [Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例
  6. iOS之深入解析Block的底层原理
  7. OpenGL之仿“天体”运动渲染球体之间的旋转效果
  8. OpenGL之裁剪与颜色混合
  9. 牛人的博客(机器学习,图像处理,计算机视觉)
  10. Python中带下划线_的变量和函数命名的用法