相关工具都可从https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite处下载获取
VMMap 查看某个进程的内存使用状态
介绍
VMMap是一个进程虚拟和物理内存分析实用程序。它显示了进程的已落实虚拟内存类型的细目分类,以及操作系统分配给这些类型的物理内存(工作集)的数量。
除了内存使用情况的图形表示之外,VMMap还显示摘要信息和详细的进程内存映射。强大的过滤和刷新功能使您能够确定进程内存使用量的来源以及应用程序功能的内存成本。
除了用于分析实时过程的灵活视图之外,VMMap还支持多种形式的数据导出,包括保留所有信息的本机格式,以便您可以加载回来。它还包括启用脚本方案的命令行选项。
对于希望了解和优化其应用程序的内存资源使用情况的开发人员而言,VMMap是理想的工具。
VMMap屏幕快照,显示Explorer.EXE内存分析
名词说明
Committed: 进程向OS宣称要使用的内存大小(在虚拟内存进行了分配),基本上都不等于进程实际使用的物理内存大小。
- 一是其中统计了进程所链接的所有动态库的空间,比如标准C库,而实际上OS在内存中只加载一份C库的代码段,所有进程共享使用。但每个进程在运行时,依然要在自己的虚拟内存空间为C库分配好地址,OS的动态库管理程序会进行映射;
- 二是OS分虚拟内存和物理内存。32位电脑上,每个进程的虚拟内存空间可达4GB。当进程malloc()申请10MB空间时,先在虚拟内存中预留出10MB的地址空间(统计入Committed),但只有在真正读写这10MB空间时,才会通过缺页中断去创建对应的物理内存,并在进程的Total WS(WorkS