windows使用VMMap工具查看运行程序内存

vmmap是一个进程虚拟和物理内存分析实用程序。它显示进程提交的虚拟内存类型以及操作系统分配给这些类型的物理内存量(工作集)的细分。除了内存使用的图形化表示,vmmap还显示摘要信息和详细的进程内存映射。强大的过滤和刷新功能允许您识别进程内存使用的来源和应用程序功能的内存成本。

除了用于分析活动进程的灵活视图外,vmmap还支持以多种形式导出数据,包括保存所有信息以便重新加载的本机格式。它还包括启用脚本方案的命令行选项。

vmmap是开发人员了解和优化应用程序内存资源使用情况的理想工具。

下载VMMap工具

直接在官网下载,https://docs.microsoft.com/zh-cn/sysinternals/downloads/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: 进程使用中的物理内存,包含了进程独占的物理内存和可共享的物理内存(主要是共享库所使用的物理内存)。注意:使用“使用中”,是为了强调进程只是正在使用这块物理内存,但并不代表全部是由进程申请的。
对于进程内存优化,大部分时候重点关注Heap行的Total WS使用情况,即进程堆中分配且实际使用的物理内存。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值