快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
况?或者尝试关闭您认为 可靠的程序而得到错误消息的情况?您可以使用 SysInternals Process Explorer 工具的 Handle Search 功能发现谁在捣乱。只要打开 Search 对话框并输入文件名即可。ProcExp 将遍历所有打开的句柄,并确定相应的进程。最终常常会发现,关闭用户界面后,编辑器或 者 Web 浏览器还留下一个小的存根进程在运行。

调查有多少内存被共享

您可以使用 VADump 的 -o 选项获得进程当前工作集的详细视图,以及有多少是共享的。 获得一个 Java 程序在系统上运行的内存转储,然后再启动另一个并转储。只要比较每个结 果的 Code/StaticData 部分,就会发现“Shareable”字节变成了 “Shared”,从而稍微降低了内存占用的增加。

清理驻留集

Windows 实现了一种“清除”进程驻留集的策略,在其看起来不再有用的时候 予以清除。为了说明这一点,打开 Task Manager 的 Processes 选项框,便可以看到要监控 的应用程序进程,然后最小化应用程序窗口,看看 Mem Usage 字段发生了什么变化!

确定应用程序需要的最少内存

对于 Windows Server 2003 和 Windows NT,Microsoft 提供了一个有趣的称为 ClearMem 的工具,如果希望进一步研究 Windows 下应用程序使用内存的情况,它可能非常 有用(请参阅 参考资料)。该工具确定了实际内存的大小,分配足够的内存,很快地占用分 配的内存然后将其释放。这样就增加了其他应用程序的内存占用压力,反复运行 ClearMem 的结果是迫使应用程序占用的内存数量减少到最小。

结束语

本文简要介绍了 Windows 如何管理内存,考察了一些最有用的免费工具,您可以用这些 工具监控 Java 应用程序的内存使用。无疑您还会发现和使用其他的工具,无论从 Web 上免 费下载产品还是购买商业产品,我们都希望澄清相互矛盾的术语会对您有所帮助。通常要确 定您测量的目标的惟一方法就是做试验,比如我们用于示范 Task Manager 的 VM Size(虚 拟内存大小)和 Mem Usage(内存使用)含义的 C 程序。

当然这些工具只能帮助确定问题的所在,如何解决还要靠您自己。多数时候您会发现 Java 堆获取了内存的一大部分,您需要深入分析代码,确定对象引用是否超出了必要的时间 。这方面有更多的工具和文章可以提供帮助, 参考资料部分给出了一些有用的链接,可以为 您指出正确的方向。

本文配套源码

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