技术开发 频道

Java SE 7最终版 语言和虚拟机将增强

  可服务性

  与所有供应商相同,IBM 力争将应用程序部署做得完美无暇,但软件开发的一个被人接受的事实是难以避免容易造成意外结果的缺陷。为了理解问题的根源并加以解决,IBM 提供了监控和诊断功能及工具来帮助排除部署 Java 应用程序过程中或者 Java 运行时中的问题。

  调试功能

  转储引擎增强

  转储引擎支持生成各种不同类型的数据,从非破坏性系统转储到线程转储,甚至还可以选择执行特定命令行,以及在更广的事件条件下执行此操作。

  借助 IBM SDK for Java 7,您现在可以生成新的转储类型,包括 “栈” 类型,它可以为导致事件的线程生成一个单一的栈跟踪,并适用更多事件的情况,包括分配对象时发生的 “分配” 事件。

  跟踪引擎增强

  跟踪引擎可通过无检测的方式来跟踪 Java 运行时的内部以及在其上运行的 Java 代码内部的状况,包括核心类库、中间件代码或者您自己的代码。除了执行引擎跟踪代码之外,还可允许触发事件。从最基本的层面来说,您可以使用开关来开启或关闭跟踪,以便减少生成的跟踪数据量并生成转储,包括新的 jstracktrace 转储,它提供了调用代码栈跟踪以及一个 “睡眠” 选项,可用于在运行代码中插入任意延时。

  Java 转储增强

  javadump 文件包含执行运行时的状态概要,包括对应用程序中所有线程的栈跟踪。该文件也得到了增强。变更采用操作系统非限制(ulimits)和环境变量的形式,以及各线程的本机(C)栈跟踪,以便更好地洞察 Java 运行时代表 Java 代码的行为,或者任何 Java Native Interface (JNI) 代码中发生的事件。

  诊断收集器

  当一般保护故障或 OutOfMemoryError 等问题事件发生时,IBM Java 运行时会生成大量诊断文件,其中包含关于问题根源的有用信息。诊断收集器(Diagnostics Collector)工具会在诊断文件创建之后运行,搜索系统转储、Java 转储、堆转储、Java 跟踪转储和详细 GC 日志,获取问题的相关时间戳。然后,诊断收集器会生成一个经过压缩的 .zip 文件,其中包含问题事件的所有诊断,以降低所占用的磁盘容量,并消除手动搜索可能存在或不存在的文件的需求。

  IBM 监控和诊断工具

  垃圾收集和内存可视化器(GCMV)

  GCMV 提供应用程序 verbose:gc 输出或操作系统内存监控数据的分析和视图,并以图形和表格的形式显示它们。它还提供了清晰的概要,并解释信息以生成一系列调优建议,以及检测 Java 内存泄漏。这种解释可允许您理解应用程序的内存使用配置文件,并通过调优改善垃圾收集器的性能。

  转储分析器

  转储分析器(Dump Analyzer)工具可帮助您使用操作系统级转储确定 Java 应用程序故障的根源。它提供一些独立的分析器,可生成解答特定问题的特定数据。这些分析器结合在一起,共同生成关于任何问题根源及应用程序状态的报表。

  健康中心

  健康中心(Health Center)是一个低开销实时监控解决方案,可允许您获取运行中 Java 应用程序的当前状态。健康中心以通俗易懂的方式提供关于性能、内存使用、管理、优化和分析的信息。特别要指出的是,健康中心提供了方法分析信息,可反映方法的调用频率以及调用栈跟踪,并提供关于应用程序中同步代码的信息,以及关于 Java 堆和总体流程的内存使用的数据。

  内存分析器

  通过使用 Diagnostic Tool Framework for Java (DTFJ) 扩展 Eclipse MAT,内存分析器(Memory Analyzer)将 Eclipse Memory Analyzer Tool (MAT) 的诊断功能引入了到 IBM Java 运行时中。此扩展允许 Java 堆分析使用操作系统级转储和 IBM Portable Heap Dumps (PHD),这样您便可以诊断内存泄漏的根源,分析应用程序的内存占用,查看 Java Collections 的大小和效率,以及理解应用程序在特定时间的状态。

  结束语

  Oracle 和 IBM 正在有条不紊地开发 Java 7 SDK。虽然发行版的规范和内容在不断发生变化,但本文中的信息应该能让您更好地理解当前的状况。您还可以通过 Early Access 项目(参见 参考资料)来持续跟踪开发进展,从而帮助您融入开发过程并获取关于重要特性及功能的反馈。

0
相关文章