Chinaunix首页 | 论坛 | 博客
  • 博客访问: 873407
  • 博文数量: 372
  • 博客积分: 10063
  • 博客等级: 中将
  • 技术积分: 4220
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 11:36
文章分类

全部博文(372)

文章存档

2012年(372)

分类: 虚拟化

2012-03-07 16:32:39

任务管理器中跟内存相关有两个重要的指标Private(提交大小)和working set(工作设置)。如下图所示:

这两个指标在process explorer中叫做Private Bytes和Working Set。

而在VMMap中,他们则分别被叫做Private和Total Working Set。我这里也用Private和working set来称呼他们。

他们经常被用来标识一个进程到底占用了多少内存,你知道他们分别代表什么吗?

Private指的是当你修改他时仅仅当前进程会受到影响。(copy-on-wirte属性的页面还没被修改时也属于此类)。这类一般包括Heap,stack和image的copy-on-write的部分。Private是虚拟内存的概念,其对应的内存可能被物理内存backup,也可能被paging file backup。比如用new来创建一个100M的内存时,private就增加100M,但是这块内存在被访问之前,实际上是paging file backup的,物理内存并没有真正占用。(win7下测试所得)

Working set是指物理内存。但是这个物理内存既包括了属于当前进程的私有物理内存(Private Working set)。也包括了可以共享的Working set(Sharable Working Set)。Private Working Set 就是前面的Private的一部分,Private的另外一部分由paging file backup。

在VMMap中,还有一个概念是Committed,它也是虚拟内存的概念,其实可以分为Private的虚拟内存和可以共享的虚拟内存。而可以共享的虚拟内存的由物理内存backup的部分就是sharable working set。

所以:

从私有和可共享的角度来看:
Committed = Private virtual memory + sharable virtual memory

从memory由什么back up来看:

Committed = memory backed by paging file + working set

Private Virtual Memory = Private Working set + private memory backed by paging file

Working set = private working set + sharable working set

阅读(603) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~