开发者社区> hopegrace> 正文

11、深入理解计算机系统笔记:存储器层次结构,利用局部性

简介: 1、缓存友好的代码 对局部变量的反复引用是好的,因为编译器能够将它们缓存在寄存器文件中(时间局部性)。(内部循环) 步长为1的引用模式是好的,因为存储器层次结构中所有层次上的缓存都是将数据存储为连续的块(空间局部性)。
+关注继续查看

1、缓存友好的代码<?xml:namespace prefix = o />

对局部变量的反复引用是好的,因为编译器能够将它们缓存在寄存器文件中(时间局部性)。(内部循环)

步长为1的引用模式是好的,因为存储器层次结构中所有层次上的缓存都是将数据存储为连续的块(空间局部性)。(通过按照数据对象存储在存储器中的顺序来读数据)

2、使用分块来提高时间局部性

分块的大致思想是将一个程序的数据结构组织成块(block)的组块(chunks)。

wps_clip_image-83

<Computer Systems:A Programmer's Perspective>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
23、深入理解计算机系统笔记,虚拟存储器,存储器映射
1、Linux通过将一个虚拟存储器区域与一个磁盘上的对象(object)关联起来,以初始化这个虚拟存储器区域的内容,这个过程称为存储器映射(memory mapping)。虚拟存储器区域可以映射到两种类型的对象: 1)unix文件系统中的普通文件:一个区域可以映射到一个普通磁盘文件的连续部分。
678 0
深入解析Windows操作系统笔记——CH2系统结构
2.系统结构 本章主要介绍系统的总体结构,关键部件之间的交互,以及运行在什么环境。 2.系统结构... 1 2.1 需求和设计目标... 1 2.2 操作系统模型... 2 2.3 总体结构.
1110 0
31、深入理解计算机系统笔记,并发编程(concurrent)(3)
1、基于预线程化(prethreading)的并发服务器 常规的并发服务器中,我们为每一个客户端创建一个新线程,代价较大。一个基于预线程化的服务器通过使用“生产者-消费者模型”来试图降低这种开销。
998 0
30、深入理解计算机系统笔记,并发编程(concurrent)(2)
1、共享变量 1)线程存储模型 线程由内核自动调度,每个线程都有它自己的线程上下文(thread context),包括一个惟一的整数线程ID(Thread ID,TID),栈,栈指针,程序计数器,通用目的寄存器和条件码。
716 0
18、深入理解计算机系统笔记:测量程序执行时间
1、人不能够觉察短于大约100ms的时间段。 2、计算机有一个外部计时器,它周期性地向处理器发送中断信号。这些中断信号之间的时间被称为间隔时间(interval time)。 3、从一个进程切换到另一个进程需要几千个时钟周期来保存当前当前进程的状态。
647 0
27、深入理解计算机系统笔记,网络编程
1、每个网络应用都是基于客户端-服务器模型的。客户端-服务器模型中的基本操作是事务(transaction)(这里的事务与数据库中的事务有区别,没有数据库事务的特性,如原子性,这时原事务仅仅是客户端和服务器之间执行的一系列步骤)。
701 0
《C Primer Plus》读书笔记——存储类、链接和内存管理
背景 距离上次写读书笔记的日子已有半个月了。这段时间一直在做摄像头直立平衡车,也把《C Primer Plus》的中级部分扫了一遍。现在做赛道算法识别遇到瓶颈了,就想把读书笔记补回来。
932 0
+关注
698
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载