如何监控Java应用程序的Windows内存使用情况 - 编程入门网
ion Time)。
图 8. TopToBottom,进程按创建时间排序 如何监控Java应用程序的Windows内存使用情况(7)时间:2011-04-16 IBM Emma ShepherdStartUp 选项卡显示了创建 Java 进程的进程、开始的时间和日期、所用的命令行以及可 执行文件和当前目录的完整路径。也可以单击 Environment 选项卡显示启动时传递给该进程 的所有环境变量的值。Modules 选项卡显示了 Java 进程所用的 DLL,如图 9 所示。 图 9. TopToBottom Modules 选项卡 同样可以按照不同的方式对列表进行排序。在图 9 中,它们是按照初始化顺序排列的。 如果双击其中的一行,可以看到 DLL 的详细信息:其地址和大小、编写的日期和时间、所依 赖的其他 DLL 列表以及加载该 DLL 的所有运行中的进程列表。如果研究这个列表,就会发 现有的 DLL 是每个运行的进程都要用到的,比如 NTDLL.DLL;有的在所有 Java 进程间共享 ,比如 JVM.DLL;而另有一些可能只有一个进程使用。 通过累加各个 DLL 的大小就可以计算出进程所用 DLL 的总大小。但是得到的结果可能会 造成误解,因为它并不意味着进程要消费所有这些内存占用。真正的大小取决于进程实际使 用了 DLL 的哪些部分。这些部分将进入进程的工作集。虽然很明显,但还是要注意 DLL 是 只读的和共享的。如果大量进程都使用一个给定的 DLL,同一时刻只有一组实际内存页保存 DLL 数据。这些实际的页面可以映射到不同的地址,进入使用它们的那些进程。Task Manager 之类的工具将工作集看作是共享和非共享页面的总和,因此很难确定使用 DLL 对内 存占用的影响。模块信息是一种很有用的方式,提供了“最差情况下”由于 DLL 造成的内存占用,需要的话可以使用其他工具作更详尽地分析。 我们关心的是内存占用情况,请单击 Memory 选项卡,图 10 显示了 Java 程序所用内存 的一小部分。 图 10. TopToBottom Memory 选项卡 如何监控Java应用程序的Windows内存使用情况(8)时间:2011-04-16 IBM Emma Shepherd显示的内容和 PrcView 类似,但是它仅仅显示了虚拟空间中的提交内存,而没有保留内 存。但是它有两个优点。首先,它可以更详尽地描述页面。比如在图 10 中专门标记了 Thread 3760 栈区域,而不仅仅是一些读/写数据。它是别的其他数据区包括环境、进程参数 、进程堆、线程栈和线程环境块(TEB)。其次,您可以直接在 TopToBottom 中浏览甚至搜 索内存。您可以搜索文本字符串或者最多 16 字节的十六进制序列。可以将十六进制搜索限 制在特定的序列中,在检索地址引用时这一点很方便。 TopToBottom 也有快照功能,可以把进程的所有信息转储到剪贴板中。 VADump VADump 是一种方便的命令行工具,属于 Microsoft ® Platform SDK 包(请参阅 参 考资料)的一部分。它的目的是转储特定进程的虚拟地址空间和驻留集。使用 VADump 最简 单的方法就是在命令行中输入以下命令:
process_id 是要分析的进程号。如果不带参数,则可以显示 VADump 完整的用法说明。 我们建议您将结果通过管道保存到文件中(如 vadump 1234 > output.txt ),因为 VADump 生成的信息非常多,一屏放不下。 输出中首先给出进程虚拟地址空间的索引:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |