Java 后期诊断,第 1 部分: JSR 326 和 Apache Kato 简介(2)

来源:developerWorks 中国 作者:Adam Pilkington
  

Apache Kato

Apache Kato 是将提供 JSR 326 参考实现的开源项目,用于分析 Sun 虚拟机生成的工件。代码库由 IBM 的 Diagnostic Tool Framework for Java (DTFJ) 提供支持(参见 参考资料)。作为开发中的项目,Kato 将适时成为一个功能全面的 Apache Software Foundation 项目。

Kato 并不是仅仅是一个参考实现。它还包含:

  • Technology Compatibility Kit (TCK):其他 JVM 提供商可以使用这个测试套件检测它们与 JSR 326 的兼容性水平。

  • Documentation:此 API 将可以作为 Javadoc 下载和浏览。

  • Wiki:涵盖项目所有方面的 wiki。

  • 示例工具:演示使用 API 时的最佳实践,项目将提供许多可下载的工具,用于解决实际问题。




诊断工具和使用它们的场景

分析后期工件的目的是确定问题的底层根源,或者提供关于虚拟机状态的视图。接下来,我们将介绍可用于执行此分析的工具,然后讨论一些常见场景并概述所涉及的问题。

Kato 的诊断工具将具备下面一些特征:

  • 交互性和批处理:工具将采用交互的方式使用,比如是作为 GUI 使用,还是像批处理中的命令行接口(CLI)那样使用?

  • 启动时间或处理时间:快速启动对工具更加重要,还是数据处理性能更加重要?

  • 随机或串行存储:工具采用随机还是串行方式访问后期工件?

  • 轻量级或重量级:工具将访问大量可用的数据,还是选择性与较少项目交互?

表 1 显示了 Apache Kato 项目将生成的工具,使用刚才定义的特征进行分类:


表 1. Kato 工具
工具类型或问题区域 交互性(GUI)或批处理(CLI) 启动时间或处理时间 随机或串行存取 轻量级或重量级
Java Debug Interface 连接器(例如,使用 Eclipse 调试工件) 交互性 启动 随机 轻量级
工件管理器 交互性 启动 随机 轻量级
本机内存分析 批处理 处理 串行 重量级
趋势分析 批处理 启动 随机 重量级
用于检测潜在问题的工件分析器 批处理 处理 串行 重量级
Java 堆分析器 交互性 启动 串行 重量级

工件管理器

您可以使用工件管理器查看后期工件的内容。一个常见的实现就是 GUI 工具在左侧以树型结构显示工件内容,并通过一些面板在右侧显示详细信息。您还可以使用管理器定位或搜索工件中的已知项目。管理器应该是轻量级的,因为它只能处理直接响应用户输入的项目,而不是迭代工件中的所有项目。管理器还应提供以下功能:

  • 数据类型规范:能够通知 UI 将特定地址的数据显示为具体的数据类型。例如,此地址表示以 null 结尾的字符串的开始。

  • 数据覆盖:将包含在转储中的字节值覆盖为用户定义的值,并让 UI 使用更新后的值。这表示您将能够通过指定正确的值来修复损坏的结构或列表。然后,您应该能够根据需要保存和重新加载这些覆盖值。

  • 自动确定工件类型。

  • 通过管理器启动其他工具。这可以是直接启动工具,或者带一组在当前管理器上下文中有用的命令行选项。举例来说,如果管理器显示堆占用了很大的空间,则您可以启动 工件分析器 来执行堆占用空间分析。

本机内存分析

过去,Java 开发人员不需要担心本机内存;事实上,JVM 的一个优势便是能帮助您解决此问题。但是现在本机内存的问题又重新成为了讨论的焦点(参见 参考资料)。最开始,本机内存的使用是相对比较简单的,因为您会在某个时候通过 Java Native Interface (JNI) 调用访问 JVM 外部的一些功能。这可以是您自己通过 JNI 发起的直接调用,或是编写到拥有良好定义的 JNI 链接的规范中的直接调用,比如 JVM Tool Interface (JVMTI)。随着 Java 5 和 java.nio 包(以及子包)的引入,本机内存作为该包提供的缓冲的底层存储使用。这很容易导致程序中拥有大量空闲 Java 堆,但会由于本机内存耗尽而抛出内存不足异常。这意味着,本机内存分析工具正在变得越重要,并且需要受 JSR 326 支持。这种工具的应用包括能够:


时间:2009-06-09 15:05 来源:developerWorks 中国 作者:Adam Pilkington 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量