快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
用,打开如图 6 所示的窗口。

图 6. 观察进程的内存

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

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

时间:2011-04-16 IBM Emma Shepherd

现在我们分析一下 PrcView 显示的地址空间映射的前几行。第一行表明从地址 0 开始, 有一块长度为 65,536 (64K) 的内存是自由空间。这些地址什么也没有分配,也不能用于寻 址。第二行说明紧跟在后面,从地址 0x00010000 起,有一个长为 8,192 字节(两个 4K 页 面)的提交内存,即可以寻址并且得到分页文件中的页帧支持的内存。然后是一段自由空间 ,另一段提交空间,如此等等。

碰巧的是,这些地址空间区域对您来说没有什么意义,因为它是供 Windows 使用的。描 述 Windows 地址空间的 Microsoft 文档指出,这些不同的区域是为兼容 MS-DOS 保留的用 户数据和代码所用的区域从 4MB 开始(请参阅 参考资料)。

向下滚动窗口,最终会看到某些您能够清楚识别的地址空间,如图 7 所示。

图 7. Java 堆

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

图 7 中高亮显示的行及其后的一行对应 Java 堆。我们给这里启动的 Java 进程 1000MB 大小的堆(使用 -mx1000m),对于该程序而言,这个堆太大了,但这样在 PrcView 映射中 更加清楚。高亮显示的一行说明堆的提交部分只有 4MB,从地址 0x10180000 开始。紧随在 后面的一行显示了一个很大的保留区域,这是堆中还没有提交的那一部分。在启动过程中, JVM 首先保留出完整的 1000MB 空间(从 0x10180000 到 0x4e980000 范围之内的地址都不 能用),然后提交启动过程所需要的那一部分,该例中为 4MB。为了验证该值确实对应当前 的堆大小,您可以用 -verbosegc JVM 选项调用该 Java 程序,可以打印出垃圾收集程序中 的详细信息。从下面的 -verbosegc 输出中第二个 GC 的第二行可以看出,当前的堆大小大 约是 4MB:

>java -mx1000m -verbosegc Hello [ JVMST080: verbosegc is enabled ] [ JVMST082: -verbose:gc output will be written to stderr ]  <GC[0]: Expanded System Heap by 65536 bytes  <GC(1): GC cycle started Wed Sep 29 16:55:44 2004  <GC(1): freed 417928 bytes, 72% free (3057160/4192768), in 104 ms>  <GC(1): mark: 2 ms, sweep: 0 ms, compact: 102 ms>  <GC(1): refs: soft 0 (age >= 32), weak 0, final 2, phantom 0>  <GC(1): moved 8205 objects, 642080 bytes, reason=4>

-verbosegc 的输出格式取决于所用的 JVM 实现,请参阅 参考资料中关于 IBM JVM 的相 关文章,或者参考供应商的文档。

如果活动数据的数量增加,JVM 需要将堆的大小扩展到 4MB 之外,它就会提交稍微多一 点的保留区域。就是说,新的区域可以从 0x10580000 开始,与已经提交的堆空间连接在一 起。

在 图 7 所示的 PrcView 窗口中,最下面一行的三个总数给出了进程提交的总内存,这 些数据是根据第七列 Type 计算得到的。三个总数为:

Private:分页文件支持的提交内存。

Mapped:直接映射到文件系统的提交内存。

Image:属于可执行代码的提交内存,包括启动的执行文件和 DLL。

到目前为止,我们只是在根据大小来了解堆在地址空间中的分配情况。为了更好的理解其 他一些内存区域,如果能够观察内存的内部情形,会对您的了解很有帮助。这就要用到下面 将讨论的工具 TopToBottom。

TopToBottom

TopToBottom 可以从 smidgeonsoft.com 免费获得(请参阅 参考资料)。该工具没有任 何文档,但是为当前执行进程提供了一组完备的视图。您不仅能够按名称进程 ID 排序,还 能够按起动时间排序,如果需要了解计算机上程序的启动顺序这一点可能很有用。

图 8 所示的 TopToBottom 窗口中,进程是按创建时间排序的( View --> Sort -- > Creat

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号