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-b59g
:
l????????
Jdk-6-beta-windows-i586
l????????
Options used: -server –Xmx128m (default)
Sun Client JVM 1.5.0_01-b08
:
l????????
Jdk-1_5_0_01-windows-i586-p
l????????
Options used: -server –Xmx128m (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
了,好像要收費,不便宜,所以……咳咳,不多說了,誰要是知道這個免費了請通知一下。