快速业务通道

IBM的Java诊断,第4部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
地 线程。ImageThread 返回对 ImageRegister 集合的迭代器,它提供对注册器当前值的访问。最后, ImagePointer 表示地址空间中一个特定的内存位置,通常用于惟一地识别某些对象。再回到 ImageProcess,您可以迭代很多独立的 ManagedRuntime 对象,这些对象定义了运行时的最常见形式。对 于要分析的大多数转储,您需要找到一个运行时,这个运行时将是 JavaRuntime;这是 ManagedRuntime 的具体化形式。

找到 JavaRuntime 对象后,可以在转储的时候检查 JVM 的关键状态。因此,可以迭代 JavaClassLoader、JavaThread、JavaMonitor 和 JavaHeap(可能有多个 JavaHeap)。还可以对经过 JIT 编译的方法进行迭代。从 JavaClassLoader 中,可以迭代一组经过定义和缓存的类,从而进一步迭 代方法和字段。在 JavaHeap 中,可以迭代堆内的所有对象,然后反映到对象字段值中。通过这些操作, 您可以编写分析代码,详细地检查转储中表示的状态,然后得出结论确定状态是否有效。

实用类

在 DTFJ 映像中操作对象时,可以通过利用 Dump Analyzer 中附带的实用类简化某些常见操作。随时 间推移,这些类的数量将逐渐增多,但是目前,一些类的目的就是简化 Iterator 和 Vector 的使用。

DTFJIterator

DTFJIterator 类接受由 DTFJ 返回的 Iterator 并在内部处理所有 CorruptData 对象,因此分析程 序就不需要再进行处理。对象能够被容易地记录、而且对象数量会被统计和限制,这样一来,当转储被严 重破坏,就不会强制分析程序处理长期运行的被破坏的对象。方法与 Iterator 中的一样,不过 getCorruptObjectCount() 将返回经过迭代器处理的被破坏对象的数量。

DTFJSortedIterator

DTFJSortedIterator 类对 DTFJIterator 的功能进行扩展,将根据由对象类型确定的次序对返回的对 象进行排序。例如,线程将按照名称顺序排序,而对象则按照地址顺序排序。该接口与 DTFJIterator 使 用的接口完全相同。

SimpleVector

SimpleVector 通过提供与 Vector 类相似的功能简化了对对象数组的处理:

addObject() 在第一个空槽中添加给定对象。

addObjectOrExtend() 在第一个空槽中添加给定对象或扩展向量。

deleteObject() 从向量的任何槽中删除对象。

deleteObjectAndCompress() 从向量的任何槽中删除对象并将空槽 压缩到初始状态。

toString() 将以 [item1,item2] 的形式输出向量。

IBM的Java诊断,第4部分(13)

时间:2011-11-02 IBM Helen Beeken

实用分析程序

除了加载和执行分析程序的基本架构外,Dump Analyzer 还提供了一个实用工具库,可以简化较复杂 分析程序的实现。这些实用程序是由经过预定义的特定分析程序提供。

这个实用工具库在不断增长,因为我们的团队一直在挑选新的通用函数,它们可以实现很多分析程序 。本节描述了一些目前极为常用的实用工具。

ObjectFinder

ObjectFinder 对 JVM 运行时进行全面扫描,找出特定类型对象的所有实例,然后再由其他分析程序 进行检查。ObjectFinder 将构建一个缓存,因此,即使多个不同的分析程序连续请求不同类型对象的实 例,JVM 也只需执行一次扫描。下面展示了一些关键的函数:

findObjects() 返回一个向量,列出了在所分析的 JVM 运行时中找到的给定类的所有实例。

getObjectCount() 返回在所分析的 JVM 运行时中找到的给定类的实例数量。

produceReport() 生成一个报告,其中列出了在 JVM 运行时中找到的每个类的实例数量。

ClassFinder

ClassFinder 分析程序对 JVM 进行全面扫描,找到当前加载的所有 Java 类,然后再由其他分析程序 进行检查。ClassFinder 构建缓存,因此即使多个不同的分析程序连续请求不同的类,JVM 运行时也只需 进行一次扫描。下面列出了关键的函数:

findClasses() 返

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