内存管理学习小记
2009-03-01 17:06
183 查看
总是会回头去学习内存管理,可是又总是会学了又忘,或许对我这种没有真正好好写过程序的人来说,要弄懂它们真的不是一件容易的事情。
常常从任务管理器和process explorer种可以看到关于内存的各个概念,那么它们到底什么意思呢 ?
![](http://p.blog.csdn.net/images/p_blog_csdn_net/vivilorne/EntryImages/20081223/memory.jpg)
以下写上我比较口语化的简单的理解,或许还有偏颇,待我再深入了解后发现错误再改回来。
vitrual memory:这是由于每个进程都能看到4G内存,而实际的物理内存是不可能那么大的,关键是很多进程共享的,那么操作系统就欺骗进程告诉它有4G.而实际操作系统只给working set和private bytes这些物理内存给它,当进程访问一个自己认为的地址的时候,都会被操作系统转换,如果在物理内存里面就让它访问,如果没有,就会触发页错误,操作系统就去磁盘上(也就是你设定的那个windows页文件pagefile.sys)寻找指定的页面,然后把它载入到内存,再让进程访问
workingset:表示系统让这个进程可以使用的物理内存数量,由系统处理,主要为了代码运行而使用。
private bytes:表示进程自己提交申请的内存,主要是位了存放数据。
ws private:记录了在workingset中被进程独享的空间大小。
ws shareable 表示这些可以被其他进程共享,但包括没有共享和已经共享的。
ws shared 表示已经共享的,一般应该是kernel32.dll这类文件
page faults 每个进程都有working set,即指定的物理内存数量,当访问的内存不在物理内存时,就会一次page faults.
12.23.2008 by vivilisa
常常从任务管理器和process explorer种可以看到关于内存的各个概念,那么它们到底什么意思呢 ?
![](http://p.blog.csdn.net/images/p_blog_csdn_net/vivilorne/EntryImages/20081223/memory.jpg)
以下写上我比较口语化的简单的理解,或许还有偏颇,待我再深入了解后发现错误再改回来。
vitrual memory:这是由于每个进程都能看到4G内存,而实际的物理内存是不可能那么大的,关键是很多进程共享的,那么操作系统就欺骗进程告诉它有4G.而实际操作系统只给working set和private bytes这些物理内存给它,当进程访问一个自己认为的地址的时候,都会被操作系统转换,如果在物理内存里面就让它访问,如果没有,就会触发页错误,操作系统就去磁盘上(也就是你设定的那个windows页文件pagefile.sys)寻找指定的页面,然后把它载入到内存,再让进程访问
workingset:表示系统让这个进程可以使用的物理内存数量,由系统处理,主要为了代码运行而使用。
private bytes:表示进程自己提交申请的内存,主要是位了存放数据。
ws private:记录了在workingset中被进程独享的空间大小。
ws shareable 表示这些可以被其他进程共享,但包括没有共享和已经共享的。
ws shared 表示已经共享的,一般应该是kernel32.dll这类文件
page faults 每个进程都有working set,即指定的物理内存数量,当访问的内存不在物理内存时,就会一次page faults.
12.23.2008 by vivilisa
相关文章推荐
- 内存管理学习小记(1)
- Splay伸展树学习小记 Poj 3580 SuperMemo
- IOS学习三:Objective-C的扩展OOP,类别,内存管理等
- linux内核内存管理学习之三(slab分配器)
- 黑马程序员--IOS入学学习--9-OC中的内存管理
- RMQ的ST算法学习小记 Poj 3264 Balanced Lineup
- LCA 学习小记 Poj 1330 Nearest Common Ancestors
- iOS学习之Block内存管理详解
- 黑马程序员————IOS学习笔记 第8篇 内存管理优化
- IOS开发小记-内存管理
- NASM 学习小记
- 数学学习小记(二) 组合数求模:Lucas 定理 LightOJ 1067 + Hdu 3037
- Java学习----封装 、继承、 内存管理
- 计算机原理学习(6)-- x86-32 CPU和内存管理之分页管理
- 正则表达式学习小记
- STL源码学习----内存管理
- 莫比乌斯反演学习小记
- 学习注水-20160822-CCNA To CCNP 日结小记-高级eigrp/用于IPv6的EIGRP及命名EIGRP的层级结构
- Vuex 学习小记(mutation)
- 对liunx内存管理的学习