Windows进程内存使用分析 --- VMMap工具使用

本文介绍了VMMap工具,用于分析Windows进程的内存使用情况。VMMap的Committed表示虚拟内存分配大小,包括共享库占用的空间,Private Bytes表示进程独占内存,而Working Set则显示进程当前使用的物理内存。关注Heap行的Total WS,可了解进程堆中实际使用的物理内存,有助于内存优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VMMap下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/vmmap

VMMap名词说明

Committed: 进程向OS宣称要使用的内存大小(在虚拟内存进行了分配),基本上都不等于进程实际使用的物理内存大小。一是其中统计了进程所链接的所有动态库的空间,比如标准C库,而实际上OS在内存中只加载一份C库的代码段,所有进程共享使用。但每个进程在运行时,依然要在自己的虚拟内存空间为C库分配好地址,OS的动态库管理程序会进行映射;二是OS分虚拟内存和物理内存。32位电脑上,每个进程的虚拟内存空间可达4GB。当进程malloc()申请10MB空间时,先在虚拟内存中预留出10MB的地址空间(统计入Committed),但只有在真正读写这10MB空间时,才会通过缺页中断去创建对应的物理内存,并在进程的Total WS(WorkSet)中体现。所以Committed相对于进程实际使用的物理内存都比较大。

Private Bytes:上面的Committed包含了很多共享库的内存,Private Bytes则是属于进程独占的内存。比如一个动态库,虽然代码段是共享的,但数据段是每个进程各自拷贝一份并维护。Private Bytes依然不完全等于进程使用的物理内存,它是进程独占的虚拟内存大小统计。

Working Set: 进程使用中的物理内存,包含了进程独占的物理内存和可共享的物理内存(主要是共享库所使用的物理内存)。注意:使用“使用中”,是为了强调进程只是正在使用这块物理内存,但并不代表全部是由进程申请的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值