Mustang JVM(1.6)与Tiger JVM(1.5)单项性能测试
Mustang JVM (1.6)与Tiger JVM(1.5)性能对比
这里先介绍一下用来做JVM性能评测的软件——Volano BenchMark,这是一个纯粹用Java写出来的服务器benchmark评测的软件。其实这本来是个WebChat的软件,制作者在Chat App的功能基础上发展出这个对JVM性能测试的小软件,用来在不同硬件配置的机器上或者是不同Kernel的操作系统上对不同的JVM进行性能测试。它是通过对服务器建立多个客户端的连接来测量客户端程序广播批量信息所需要的时间,从而达到对JVM性能测试的结果。
其实这个软件能对服务器的以下方面性能进行评测:调度程序,TCP/IP及Ethernet Driver的网络吞吐及响应,Pthreads线程,SMP(Symmetric Multi Processing对称多处理)性能测量。
Benchmark 的配置
- CHAT 房间数量:10
- 每个房间用户数量:20
- 每个用户信息量:1000
服务器和客户端都在同一台电脑上
测试用到的JVM
Sun Client JVM 1.6.0 -beta-b 59g :
l Jdk-6-beta-windows-i586
l Options used: -server –Xmx 128m (default)
Sun Client JVM 1.5.0 _01-b08 :
l Jdk-1_5_0_01-windows-i586-p
l Options used: -server –Xmx 128m (default)
在这里我补充一下,JVM的启动Option我没有进行配置,因为这里做的只是在通常情况下Mustang(1.6)和Tiger(1.5)的对比,所以选用server还是Client/Hotspot、预分配Heap的大小是 128M 还是 512M 就不去讨论了。如果大家需要更深的讨论欢迎一起讨论,这里我个人感觉-server是比-Client(也就是Java选项中的Hotspot)快,启动会慢一点,但运行速度比较快。同时这里不使用Net模式进行测试,只使用Loop。
硬件配置
OS :Microsoft Windows XP [版本 5.1.2600] (Service Pack 2)
CPU: AMD Athlon(tm) XP 2200+ Thoroughbred-B Processor(0.13μm)
Memory: 512MB
Cache:64+64KB L1 Cache+258 KB L2 Cache
测试结果:
测试结果是以每秒信息数量来衡量的,测试结果取5次测试去掉最高和最低后的平均值:
JVM |
指标 |
1 |
2 |
3 |
4 |
5 |
1.6 β JVM Mustang |
持续时间(秒) |
46.235 |
43.5 |
45.063 |
44.016 |
44.719 |
平均吞吐量 |
8651 |
9195 |
8876 |
9088 |
8945 |
|
1.5 JVM Tiger |
持续时间(秒) |
47.828 |
43.125 |
42.266 |
41.984 |
42.359 |
平均吞吐量 |
8363 |
9275 |
9464 |
9527 |
9443 |
测试结果:
Mustang JVM 1.6 β: 8969.667
Tiger JVM 1.5 : 9394
感觉有点不太对劲,重新启动电脑再试了一遍:
JVM |
指标 |
1 |
2 |
3 |
4 |
5 |
1.6 β JVM Mustang |
持续时间(秒) |
46.312 |
44.063 |
44.11 |
44.109 |
44.953 |
平均吞吐量 |
8637 |
9078 |
9068 |
9068 |
8898 |
|
1.5 JVM Tiger |
持续时间(秒) |
46.813 |
43.621 |
42.512 |
42.684 |
43.012 |
平均吞吐量 |
8663 |
9145 |
9435 |
9456 |
9426 |
测试结果:
Mustang JVM 1.6 β: 9011.333
Tiger JVM 1.5 : 9335.333
1.5 的 JVM 还是比 1.6 β的性能好。个人有点不是很理解,当然这里没有去考虑使用 Server 还是 Client 以及其他因素,但作为一个普通的应用程序开发者,β版的 1.6JVM 的效能并没有让我们看到惊喜。
后话:
国外一个 Blog 的专栏作家们曾经说到, 1.5 版是 Java 的巨大改进,但 1.6 让我们看到了走向暮年的 Java ,但坚信 Java 不会 Die out ,因为我们从 COBOL 或者 C++ 那些语言可以看到,即使是在这个年代,我们仍然可以看到 COBOL 和 C++ 的广泛应用,他们已经活了数十年了,而 Java 才 10 多岁, Java 的用户群体是有史以来最多的,所以相信 Java 会变强。但也相信很快会有另一个年轻的“ Java ”来代替已老的 Java ,正如当初 Java 横空出世一样。
我的评测结果也许有很多错误的地方,欢迎大家指出,同时我这里使用的 Mustang 的 JVM 是 Demo 版里面比较老的,也许这是对结果影响的一个重要因素, Sun 的 Java 网站也曾有评测结果对两个 Demo 版的 Mustang JVM 和 Tiger JVM 进行评测,结果也是如此,旧版的 Mustang JVM 比 Tiger 性能还低,但新版 Mustang JVM 能比 Tiger 超出 30 ~ 40 个百分点,但我不确定使用的是否为旧版。
如果大家想要自己使用 VolanoBenchmark 对 JVM 以及网络吞吐情况和服务器性能进行测试,我可以提供简要的教程。这里除了 Volano 外其实还有几个对 Java 服务器性能进行测试的软件,我所有三个,大家可以去看看:
RUBiS benchmark Object Web 的 JMOB 项目之一,不要说不知道 Object Web 是什么,它是国际开源中间件联盟管理团体的网站,这个测试工具的功能是三个中最强大的了。本人没时间去接触,所以就不使用她了。推荐使用!
VolanoMark ,不多说了,免费而且简单上手,在 Windows 环境下需要 cygwin 才能运行(其实只是为了运行 shell 文件,如果你对自己的 Dos Batch 水平有信心也可以改造成不用 cygwin )。能对服务器性能、网络性能以及应用程序性能做测试。如果需要使用帮助的可以留言,或者来信chenpengyi#gmail.com。
最后一个就是 SPECjbb2000 ,以前叫 2000 ,现在更名 2005 了,好像要收费,不便宜,所以……咳咳,不多说了,谁要是知道这个免费了请通知一下。