返回首页

Java6平台性能测试报告

时间:2009-02-05 21:47来源:sina 作者:WilliamChen 点击:
新出的Java6的确在性能的提高上得到许多用户的认可。记得以前有几个著名通用的语言和平台性能测试 benchmark,最近正在想,怎么没有人出来,用它们测试一把新出Java6的性能。今天google了一把,就发现有人已经急不可耐的做
  

         新出的Java6的确在性能的提高上得到许多用户的认可。记得以前有几个著名通用的语言和平台性能测试 benchmark,最近正在想,怎么没有人出来,用它们测试一把新出Java6的性能。今天google了一把,就发现有人已经急不可耐的做了,哈哈。 他不仅测试Java6,而且把当前主要的Java平台产品,包括Sun J2SE 5, Sun Java SE 6, IBM SDK 5.0和BEA JRockit 5.0都给做了,并做了比较。

         Java 6终于发版了,它是目前速度最快、最可靠的Java平台,并且专门面向自动性能调优进行改进。这意味着什么?简单来说意味着不用再为JVM添加调优选项就 可以获得最佳性能了!从更广的视角看意味着更多,你再也不用花费大量的时间,为了使程序达到运行最优化的效率,来设置那些像密码一样的虚拟机选项了, Java 6使得性能调优非常容易。

          最近开源的Java 6HotSpot JVM让人印象深刻,这儿有个概括总结:

  1. SPECjbb2005测试结果非常好,Java6的out of the box(即不用添加任何虚拟机性能参数)性能在Intel Core上要比竞争对手高40%,在AMD Opteron上比竞争对手高30%。
  2. Java6在Scimark上要比竞争对手高40%而领先。
  3. 在Volano上Java 6比Java5的最近更新要高20%。

           一个Java程序的out of the box性能是一个吸引人但是非常困难的事情,客户端和服务器端的java程序需求差别很大,一方面客户端程序要求快速启动,内存消耗小,而服务器端程序要求高度优化的代码,吞吐量以及低延迟时间,两种程序都需要可靠性和兼容性。

          Out of box性能是JVM开发的正确目标,未来的Java benchmark应该着重反映这种目标。虽然可以通过人工调试选择高性能的参数让benchmark产生很好的结果,但这对于用来说没有用处,除非这些人工调试的过程能成为虚拟机行为的一部分。

          为了更清楚起见,着重强调一下,下图的目的是强调客户体验及Sun Java平台的out-of-the-box性能的重要性,不是为了产生高性能的benchmark结果。手工调优的结果可能使结果差异更大。

         下面是一个out-of-box性能比较,使用的机器是Dell 2950和Sun Fire X4200,Dell系统配置有2个双核Intel 5160处理器(2 CPU,4个3.0Ghz的内核),16GB内存。Sun系统的配置是2个双内核Opteron 280处理器(2 CPU, 4个2.4Ghz内核),8GB内存。两台机器上装的操作系统都是Red Hat EL 4.0 AS Update 4,Linux内核版本是2.6.9-42.ELsmp。这套配置的唯一变化是JVM不同。

         测试的JVM版本是测试时公开发布的最新版本,BEA JRockit JVM是从它们的主要GA站点以及64位性能更新站点上下载的。IBM的JVM是IBM开发者网站上下载的最新版本。下面是各Java平台的情况:

  • Sun JDK 1.5.0_10
    • 32位: java版本 "1.5.0_10" Java(TM) 2 运行时环境, 标准版 (build 1.5.0_10-b03) Java HotSpot(TM) Server VM (build 1.5.0_10-b03, mixed mode)
    • 64位: java版本 "1.5.0_10" Java(TM) 2 运行时环境, 标准版 (build 1.5.0_10-b03) Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_10-b03, mixed mode)
  • Sun Java SE 6 build 98
    • 32位: java版本 "1.6.0" Java(TM) SE 运行时环境 (build 1.6.0-b105) Java HotSpot(TM) Server VM (build 1.6.0-rc-b99, mixed mode)
    • 64位: java版本 "1.6.0" Java(TM) SE 运行时环境 (build 1.6.0-b105) Java HotSpot(TM) 64位 Server VM (build 1.6.0-b105, mixed mode)
  • IBM JDK 5.0 SR3
    • 32位: Java(TM) 2 运行时环境, 标准版 (build pxi32dev-20061002a (SR3) ) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20061001 (JIT enabled) J9VM - 20060915_08260_lHdSMR JIT - 20060908_1811_r8 GC - 20060906_AA) JCL - 20061002
    • 64位: Java(TM) 2 运行时环境, 标准版 (build pxa64dev-20061002a (SR3) ) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423-20061001 (JIT enabled) J9VM - 20060915_08260_LHdSMr JIT - 20060908_1811_r8 GC - 20060906_AA) JCL - 20061002
  • BEA JRockit 5.0_06 R26.4
    • 32位: java版本 "1.5.0_06" Java(TM) 2 运行时环境, 标准版 (build 1.5.0_06-b05) BEA JRockit(R) (build R26.4.0-63-63688-1.5.0_06-20060626-2259-linux-ia32, )
    • 64位: java版本 "1.5.0_06" Java(TM) 2 运行时环境, 标准版 (build 1.5.0_06-b05) BEA JRockit(R) (build P26.4.1-12-67782-1.5.0_06-20061003-1620-linux-x86_64, )

         就像前文所说的,这些结果都不包含JVM调优选项。下面显示的结果也是统计比较。执行了超过10个的样本,以及一个T-测试(single-tailed)来保证结果的置信域。数据以IBM JDK 5 SR3的结果进行标准化(即IBM的结果为100,注意结果值越高越好)。

          第一个图显示的是SPECjbb2005。SPECjbb2005是SPEC的bencmark,用来评估Java的服务器端性能,它通过模拟三层client/server系统来评估服务器端Java(重点是评估中间层)。这个benchmark广泛的使用Java Collection,BigDecimal和XML处理,关于SPECjbb2005比较酷的一点是对它的专门优化也会反应到其他benchmark比如SPECjappserver2004上。下面benchmark的结果是在单子模态运行的。


          SciMark 2.0是用来测试科学和数字运算的,这儿Sun的JVM继续领先。


         Volano是一个流行的Java聊天服务器,这个benchmark涉及一个客户端和一个服务器端。从虚拟机角度看,工作量主要集中在传统的Java Socket I/O上,如果有一个NIO版的也许结果更有趣。运行Volano性能差别不是很大,主要是因为垃圾收集量比较小。这儿BEA的JRockit结果比较好,超出标准19%,Sun的Java SE 6仍然要领先,超出标准22%。


         第二组结果是在Sun Fire X4200/AMD Opteron 280 CPU上跑的。

         SPECjbb2005的结果:


          Scimark 2.0的结果:


            Volano的结果:


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
发布者资料
小朱 查看详细资料 发送留言 加为好友 用户等级:超级会员 注册时间:2008-11-18 17:11 最后登录:2012-02-06 13:02
推荐内容
热点内容