C++学习笔记(一)——内存分配问题

来源:互联网 发布:上海巴斯德研究所 知乎 编辑:程序博客网 时间:2024/06/05 01:08
  1. 内存分配问题
    VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口。关于各种变量的内存如下。

VC运行结果:
这里写图片描述
VS运行结果:
这里写图片描述

(1)寄存器是在CPU上的存储器,CPU通过寄存器来对内存进行访问。
CPU(寄存器)<->Cache<->内存
参考:http://blog.csdn.net/dianhuiren/article/details/6890448
cache是一种高速缓冲存储器,她的主要作用是提高CPU数据输入的速率,调和CPU速度与内存存储速度之间的巨大差异。cache是一种高速缓冲存储器,她的主要作用是提高CPU数据输入的速率,调和CPU速度与内存存储速度之间的巨大差异。
通俗一点说就是CPU太快,内存速度相对比较慢,而cache的速度快,但是cache的价格比较昂贵。人们想到一个办法就是利用小容量的cache在CPU和内存中间当桥梁,也就是说把CPU在下一个时间段需要用到的数据提前存入cache中,当 CPU需要的时候可以快速的从Cache中取得数据,这样就可以在一定程度上提高计算机的性能。但是怎样才能知道CPU在下一个时间段内用到内存中的哪些 数据呢?局部性原理就可以解决这个问题。
使用cache改善系统性能的依据就是局部性原理。
(2)内存中一共开辟了五块分区:堆、栈、全局/静态存储区(数据区和BBS区)、文字常量和程序代码区(文本区)。

(3)堆栈的区别参考下面文章:http://www.cnblogs.com/daocaoren/archive/2011/06/29/2092957.html

0 0
原创粉丝点击