快速业务通道

如何监控Java应用程序的Windows内存使用情况 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
它们的那一部分。以后活动数据数量增加,堆需要扩展,JVM 可以再提交多一点内存,这 些内存与当前提交的部分相邻。通过这种方式,JVM 可以维护单一的、连续的堆空间,并根 据需要增长(关于如何使用 JVM 堆参数请参阅 参考资料)。

实际内存

物理存储页组织成大小相同的单位,通常称为 页帧。操作系统有一种数据结构称为 页表 ,将应用程序访问的虚拟页映射到主存中的实际页帧。没有装入的页保存在磁盘上的临时分 页文件中。当应用程序要访问当前不在内存中的页时,就会出现 页面错误,导致内存管理程 序从分页文件中检索该页并放到主存中,这个任务称为 分页。决定将哪些页交换出去的具体 算法取决于所用的 Windows 版本,可能是最近最少访问算法的一种变体。同样要注意, Windows 允许进程间共享页帧,比如 DLL 分配的页帧,常常被多个应用程序同时使用。 Windows 通过将来自不同地址空间的多个虚拟页映射到同一个物理地址来实现这种机制。

应用程序很高兴对所有这些活动一无所知。它只知道自己的虚拟地址空间。但是,如果当 前在主存中的页面集(称为 驻留集)少于实际要使用的页面集(称为 工作集),应用程序 的性能很快就会显著降低。(不幸的是,本文中您将看到,我们要讨论的工具常常交换使用 这两个术语,尽管它们指的是完全不同的事物。)

Task Manager 和 PerfMon

我们首先考察两种最常见的工具:Task Manager 和 PerfMon。这两个工具都随 Windows 一起提供,因此由此起步比较容易。

Task Manager

Task Manager 是一种非常见的 Windows 进程监控程序。您可以通过熟悉的 Ctrl-Alt- Delete 组合键来启动它,或者右击任务栏。Processes 选项卡显示了最详细的信息,如图 2 所示。

图 2. Task Manager 进程选项卡

如何监控Java应用程序的Windows内存使用情况 - 编程入门网

图 2 中显示的列已经通过选择 View --> Select Columns 作了调整。有些列标题非 常含糊,但可以在 Task Manager 帮助中找到各列的定义。和进程内存使用情况关系最密切 的计数器包括:

如何监控Java应用程序的Windows内存使用情况(3)

时间:2011-04-16 IBM Emma Shepherd

Mem Usage(内存使用):在线帮助将其称为进程的工作集(尽管很多人称之为驻留集) ——当前在主存中的页面集。但是这个数值包含能够和其他进程共享的页面,因 此要注意避免重复计算。比方说,如果要计算共享同一个 DLL 的两个进程的总内存占用情况 ,不能简单地把“内存使用”值相加。

Peak Mem Usage(内存使用高峰值):进程启动以来 Mem Usage(内存使用)字段的最大 值。

Page Faults(页面错误):进程启动以来要访问的页面不在主存中的总次数。

VM Size(虚拟内存大小):联机帮助将其称为“分配给进程私有虚拟内存总数。 ”更确切地说,这是进程所 提交的内存。如果进程保留内存而没有提交,那么该值就 与总地址空间的大小有很大的差别。

虽然 Windows 文档将 Mem Usage(内存使用)称为工作集,但在该上下文中,它实际上 指的是很多人所说的驻留集(resident set),明白这一点很重要。您可以在 Memory Management Reference 术语表(请参阅 参考资料)中找到这些术语的定义。 工作集 更通 常的含义指的是一个逻辑概念,即在某一点上为了避免分页操作,进程需要驻留在内存中的 那些页面。

PerfMon

随 Windows 一起提供的另一种 Microsoft 工具是 PerfMon,它监控各种各样的计数器, 从打印队列到电话。PerfMon 通常在系统路径中,因此可以在命令行中输入 perfmon 来启动 它。这个工具的优点是以图形化的方式显示计数器,很容易看到计数器随时间的变化情况。

请在 PerfMon 窗口上方的工具栏中单击 + 按钮,这样会打开一个对话框让您选择要监控 的计数器,如图 3a 所示。计数器按

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号