Sun 发布的 Java 6 第 18 次更新大大提升了性能并增加了对 Window7 的支持

  • Charles Humble
  • 马国耀

2010 年 1 月 22 日

话题:Java语言 & 开发架构

Sun发布了Java 6 的第 18 次更新,这次更新着重强调了性能的改进,包括 Hotspot(16.0) 新版,对 UI 应用程序的启动和运行时的改进。该发布还包括了对 Ubuntu 8.04,Red Hat 企业版 Linux 5.3 和 Windows 7 的支持,此外她还解决了 357 个 bug。

企业开发者们特别感兴趣的改进当然是 Java 7 中提出的垃圾回收站的改进。Garbage First(G1) 垃圾回收站(不再是 OpenJDK 7 中的实验品)提升了可靠性和性能,而且,并行扫描垃圾回收站(Parallel Scavenger garbage collector)还包含了对改进的 NUMA 体系结构的支持。大多数现代计算机都是基于 NUMA 体系结构的,这该体系结构中,访问不同区域的内存所需的时间是不同的。Java HotSport 虚拟机实现了 NUMA 感知的内存分配器,由它为 Java 应用提供自动的内存分配优化。比如,每个系统中的处理器都有一个访问低延迟高带宽的本地内存和存取很慢的远程内存。NUMA 感知的分配器是为 Solaris (>= 9u2) 和 Linux(kernel >= 2.6.19, glibc >= 2.6.1) 操作系统而实现的,并且可以通过 -XX:+UseNUMA标记打开或关闭并行扫描垃圾回收站。服务器的并行扫描器(Parallel Scavenger)默认使用其缺省值,也可通过指定 -XX:+UseParallelGC选项的值打开它。此改动所产生的影响非常大:当在 8 芯片 Opteron 机器上的使用SPEC JBB 2005基准进行评估时,NUMA 感知的操作系统能够带来 30%(32 位操作系统)到 40%(64 位操作系统)的性能提高。

在此次更行中的其他的 Hotspot 变更包括代码生成的改进,如优化了通用字符串合并模式和删除了不必要的整形基本类型之间转换,还有其他新增选项,比如在完全垃圾回收之前或之后请求堆内存映射或类历史图。遗憾的是,在第 14 次更新中激活的内存泄漏分析的优化,在这次更行中被关闭了,只能等待将来的某天被再次激活了。

Sun 对于桌面和 RIA 市场的持续关注见证了桌面应用和 Java Web Start 的性能的大大提升,其中包括:

  • 更可观的垃圾回收改进,其中包括新增的客户端和服务端 Java 虚拟机的缺省堆配置。
  • 类加载优化让启动更快。
  • 应用启动的改进,包括在 Direct 3D 使用时带来的 100 至 200 毫秒的系统时间的节省。
  • 对 JavaFX 运行时的预验证的修正支持,它可以加速 JavaFX 应用程序的预热启动,提升空间达 15%。
  • 为 Web Start 应用和 applet 并行下载 jar 包。
  • 更行了 Java Web 启动,实现了 JSR-56(6.0.18)版并解决了一些关键的 bug(6888118, 6800992, 6863499)。

本次发布中的其他变更有:

  • 创建 jar 文件的时间降低了 20%
  • JavaDB 更新到 10.5.3 版本
  • VisualVM 更新到 1.2.1
  • StaX 的细微更新(面向流的 XML 处理 API)

在本次发布中没有涉及安全相关的更新,但下一次与安全相关的更新有望在本季度发布。

查看英文原文:Sun Releases Java 6 Update 18 With Significant Performance Improvements and Windows 7 Support

Java语言 & 开发架构