了解.NET应用程序内存大小

我正在使用的应用程序在启动后需要338MB专用字节和780MB虚拟字节。 我试图理解什么需要所有这些记忆。 希望在理解之后我可以减小它的大小。 这是一个32位的C#应用​​程序,上面的数字是在Windows7 64位下运行的。

用windbg打开一个转储表明堆大小是47MB。 应用程序加载的外部库文件总大小为60MB。

一个空的c#应用程序只需要10MB,那么会导致我的应用程序达到338MB专用字节? 为什么windows7分配780MB虚拟内存

任何方向将有所帮助。

您可以利用Technet网站上Windows Sysinternals的进程虚拟和物理内存分析工具VMMap 。

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

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

对于希望了解和优化应用程序内存资源使用情况的开发人员来说,VMMap是理想的工具