Mustang JVM
(1.6)與Tiger JVM(1.5)性能對比
這里先介紹一下用來做JVM性能評測的軟件——Volano BenchMark,這是一個(gè)純粹用Java寫出來的服務(wù)器benchmark評測的軟件。其實(shí)這本來是個(gè)WebChat的軟件,制作者在Chat App的功能基礎(chǔ)上發(fā)展出這個(gè)對JVM性能測試的小軟件,用來在不同硬件配置的機(jī)器上或者是不同Kernel的操作系統(tǒng)上對不同的JVM進(jìn)行性能測試。它是通過對服務(wù)器建立多個(gè)客戶端的連接來測量客戶端程序廣播批量信息所需要的時(shí)間,從而達(dá)到對JVM性能測試的結(jié)果。
其實(shí)這個(gè)軟件能對服務(wù)器的以下方面性能進(jìn)行評測:調(diào)度程序,TCP/IP及Ethernet Driver的網(wǎng)絡(luò)吞吐及響應(yīng),Pthreads線程,SMP(Symmetric Multi Processing對稱多處理)性能測量。
Benchmark
的配置
-
CHAT
房間數(shù)量:10
-
每個(gè)房間用戶數(shù)量:20
-
每個(gè)用戶信息量:1000
服務(wù)器和客戶端都在同一臺電腦上
測試用到的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)
在這里我補(bǔ)充一下,JVM的啟動Option我沒有進(jìn)行配置,因?yàn)檫@里做的只是在通常情況下Mustang(1.6)和Tiger(1.5)的對比,所以選用server還是Client/Hotspot、預(yù)分配Heap的大小是128M還是512M就不去討論了。如果大家需要更深的討論歡迎一起討論,這里我個(gè)人感覺-server是比-Client(也就是Java選項(xiàng)中的Hotspot)快,啟動會慢一點(diǎn),但運(yùn)行速度比較快。同時(shí)這里不使用Net模式進(jìn)行測試,只使用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
測試結(jié)果:
測試結(jié)果是以每秒信息數(shù)量來衡量的,測試結(jié)果取5次測試去掉最高和最低后的平均值:
JVM
|
指標(biāo)
|
1
|
2
|
3
|
4
|
5
|
1.6
β
JVM
Mustang
|
持續(xù)時(shí)間(秒)
|
46.235
|
43.5
|
45.063
|
44.016
|
44.719
|
平均吞吐量
|
8651
|
9195
|
8876
|
9088
|
8945
|
1.5 JVM
Tiger
|
持續(xù)時(shí)間(秒)
|
47.828
|
43.125
|
42.266
|
41.984
|
42.359
|
平均吞吐量
|
8363
|
9275
|
9464
|
9527
|
9443
|
測試結(jié)果:
Mustang JVM 1.6
β:
8969.667
Tiger JVM 1.5
:
9394
感覺有點(diǎn)不太對勁,重新啟動電腦再試了一遍:
JVM
|
指標(biāo)
|
1
|
2
|
3
|
4
|
5
|
1.6
β
JVM
Mustang
|
持續(xù)時(shí)間(秒)
|
46.312
|
44.063
|
44.11
|
44.109
|
44.953
|
平均吞吐量
|
8637
|
9078
|
9068
|
9068
|
8898
|
1.5 JVM
Tiger
|
持續(xù)時(shí)間(秒)
|
46.813
|
43.621
|
42.512
|
42.684
|
43.012
|
平均吞吐量
|
8663
|
9145
|
9435
|
9456
|
9426
|
測試結(jié)果:
Mustang JVM 1.6
β:
9011.333
Tiger JVM 1.5
:
9335.333
1.5
的
JVM
還是比
1.6
β的性能好。個(gè)人有點(diǎn)不是很理解,當(dāng)然這里沒有去考慮使用
Server
還是
Client
以及其他因素,但作為一個(gè)普通的應(yīng)用程序開發(fā)者,β版的
1.6JVM
的效能并沒有讓我們看到驚喜。
后話:
國外一個(gè)
Blog
的專欄作家們曾經(jīng)說到,
1.5
版是
Java
的巨大改進(jìn),但
1.6
讓我們看到了走向暮年的
Java
,但堅(jiān)信
Java
不會
Die out
,因?yàn)槲覀儚?/span>
COBOL
或者
C++
那些語言可以看到,即使是在這個(gè)年代,我們?nèi)匀豢梢钥吹?/span>
COBOL
和
C++
的廣泛應(yīng)用,他們已經(jīng)活了數(shù)十年了,而
Java
才
10
多歲,
Java
的用戶群體是有史以來最多的,所以相信
Java
會變強(qiáng)。但也相信很快會有另一個(gè)年輕的“
Java
”來代替已老的
Java
,正如當(dāng)初
Java
橫空出世一樣。
我的評測結(jié)果也許有很多錯(cuò)誤的地方,歡迎大家指出,同時(shí)我這里使用的
Mustang
的
JVM
是
Demo
版里面比較老的,也許這是對結(jié)果影響的一個(gè)重要因素,
Sun
的
Java
網(wǎng)站也曾有評測結(jié)果對兩個(gè)
Demo
版的
Mustang JVM
和
Tiger JVM
進(jìn)行評測,結(jié)果也是如此,舊版的
Mustang JVM
比
Tiger
性能還低,但新版
Mustang JVM
能比
Tiger
超出
30
~
40
個(gè)百分點(diǎn),但我不確定使用的是否為舊版。
如果大家想要自己使用
VolanoBenchmark
對
JVM
以及網(wǎng)絡(luò)吞吐情況和服務(wù)器性能進(jìn)行測試,我可以提供簡要的教程。這里除了
Volano
外其實(shí)還有幾個(gè)對
Java
服務(wù)器性能進(jìn)行測試的軟件,我所有三個(gè),大家可以去看看:
RUBiS benchmark Object Web
的
JMOB
項(xiàng)目之一,不要說不知道
Object Web
是什么,它是國際開源中間件聯(lián)盟管理團(tuán)體的網(wǎng)站,這個(gè)測試工具的功能是三個(gè)中最強(qiáng)大的了。本人沒時(shí)間去接觸,所以就不使用她了。推薦使用!
VolanoMark
,不多說了,免費(fèi)而且簡單上手,在
Windows
環(huán)境下需要
cygwin
才能運(yùn)行(其實(shí)只是為了運(yùn)行
shell
文件,如果你對自己的
Dos Batch
水平有信心也可以改造成不用
cygwin
)。能對服務(wù)器性能、網(wǎng)絡(luò)性能以及應(yīng)用程序性能做測試。如果需要使用幫助的可以留言,或者來信chenpengyi#gmail.com。
最后一個(gè)就是
SPECjbb2000
,以前叫
2000
,現(xiàn)在更名
2005
了,好像要收費(fèi),不便宜,所以……咳咳,不多說了,誰要是知道這個(gè)免費(fèi)了請通知一下。