探究JVM1.6與JVM1.5性能差距
本文向大家描述一下JVM1.6與JVM1.5性能的差距,通過(guò)測(cè)試工具VolanoBenchMark,我們能清楚的看到兩者的差距,以及新軟件的進(jìn)步。其實(shí)這本來(lái)是個(gè)WebChat的軟件,制作者在ChatApp的功能基礎(chǔ)上發(fā)展出這個(gè)對(duì)JVM性能測(cè)試的小軟件,用來(lái)在不同硬件配置的機(jī)器上或者是不同Kernel的操作系統(tǒng)上對(duì)不同的JVM進(jìn)行性能測(cè)試。它是通過(guò)對(duì)服務(wù)器建立多個(gè)客戶端的連接來(lái)測(cè)量客戶端程序廣播批量信息所需要的時(shí)間,從而達(dá)到對(duì)JVM性能測(cè)試的結(jié)果。
橫向?qū)Ρ菾VM1.6與JVM1.5性能
其實(shí)這個(gè)軟件能對(duì)服務(wù)器的以下方面性能進(jìn)行評(píng)測(cè):調(diào)度程序,TCP/IP及EthernetDriver的網(wǎng)絡(luò)吞吐及響應(yīng),Pthreads線程,SMP(SymmetricMultiProcessing對(duì)稱多處理)性能測(cè)量。
Benchmark的配置
CHAT房間數(shù)量:10
每個(gè)房間用戶數(shù)量:20
每個(gè)用戶信息量:1000
服務(wù)器和客戶端都在同一臺(tái)電腦
測(cè)試用到的JVM
SunClientJVM1.6.0-beta-b59g:
Jdk-6-beta-windows-i586
Optionsused:-server–Xmx128m(default)
SunClientJVM1.5.0_01-b08:
Jdk-1_5_0_01-windows-i586-p
Optionsused:-server–Xmx128m(default)
在這里我補(bǔ)充一下,JVM的啟動(dòng)Option我沒(méi)有進(jìn)行配置,因?yàn)檫@里做的只是在通常情況下Mustang(1.6)和Tiger(1.5)的對(duì)比,所以選用server還是Client/Hotspot、預(yù)分配Heap的大小是128M還是512M就不去討論了。如果大家需要更深的討論歡迎一起討論,這里我個(gè)人感覺(jué)-server是比-Client(也就是Java選項(xiàng)中的Hotspot)快,啟動(dòng)會(huì)慢一點(diǎn),但運(yùn)行速度比較快。同時(shí)這里不使用Net模式進(jìn)行測(cè)試,只使用Loop。
硬件配置
OS:MicrosoftWindowsXP[版本5.1.2600](ServicePack2)
CPU:AMDAthlon(tm)XP2200+Thoroughbred-BProcessor(0.13μm)
Memory:512MB
Cache:64+64KBL1Cache+258KBL2Cache
測(cè)試結(jié)果:
測(cè)試結(jié)果是以每秒信息數(shù)量來(lái)衡量的,測(cè)試結(jié)果取5次
測(cè)試去掉***和***后的平均值:
測(cè)試結(jié)果:
MustangJVM1.6β:8969.667
TigerJVM1.5:9394
感覺(jué)有點(diǎn)不太對(duì)勁,重新啟動(dòng)電腦再試了一遍:
#p#
JVM1.6與JVM1.5測(cè)試結(jié)果:
MustangJVM1.6β:9011.333
TigerJVM1.5:9335.333
JVM1.5的還是比JVM1.6β的性能好。個(gè)人有點(diǎn)不是很理解,當(dāng)然這里沒(méi)有去考慮使用Server還是Client以及其他因素,但作為一個(gè)普通的應(yīng)用程序開(kāi)發(fā)者,β版的1.6JVM的效能并沒(méi)有讓我們看到驚喜。
橫向?qū)Ρ菾VM1.6與JVM1.5性能后話:
國(guó)外一個(gè)Blog的專欄作家們?cè)?jīng)說(shuō)到,1.5版是Java的巨大改進(jìn),但1.6讓我們看到了走向暮年的Java,但堅(jiān)信Java不會(huì)Dieout,因?yàn)槲覀儚腃OBOL或者C++那些語(yǔ)言可以看到,即使是在這個(gè)年代,我們?nèi)匀豢梢钥吹紺OBOL和C++的廣泛應(yīng)用,他們已經(jīng)活了數(shù)十年了,而Java才10多歲,Java的用戶群體是有史以來(lái)最多的,所以相信Java會(huì)變強(qiáng)。但也相信很快會(huì)有另一個(gè)年輕的“Java”來(lái)代替已老的Java,正如當(dāng)初Java橫空出世一樣。
我的評(píng)測(cè)結(jié)果也許有很多錯(cuò)誤的地方,歡迎大家指出,同時(shí)我這里使用的Mustang的JVM是Demo版里面比較老的,也許這是對(duì)結(jié)果影響的一個(gè)重要因素,Sun的Java網(wǎng)站也曾有評(píng)測(cè)結(jié)果對(duì)兩個(gè)Demo版的MustangJVM和TigerJVM進(jìn)行評(píng)測(cè),結(jié)果也是如此,舊版的MustangJVM比Tiger性能還低,但新版MustangJVM能比Tiger超出30~40個(gè)百分點(diǎn),但我不確定使用的是否為舊版。
如果大家想要自己使用VolanoBenchmark對(duì)JVM以及網(wǎng)絡(luò)吞吐情況和服務(wù)器性能進(jìn)行測(cè)試,我可以提供簡(jiǎn)要的教程。這里除了Volano外其實(shí)還有幾個(gè)對(duì)Java服務(wù)器性能進(jìn)行測(cè)試的軟件,我所有三個(gè),大家可以去看看:
RUBiSbenchmarkObjectWeb的JMOB項(xiàng)目之一,不要說(shuō)不知道ObjectWeb是什么,它是國(guó)際開(kāi)源中間件聯(lián)盟管理團(tuán)體的網(wǎng)站,這個(gè)測(cè)試工具的功能是三個(gè)中***大的了。本人沒(méi)時(shí)間去接觸,所以就不使用她了。推薦使用!
VolanoMark,不多說(shuō)了,免費(fèi)而且簡(jiǎn)單上手,在Windows環(huán)境下需要cygwin才能運(yùn)行(其實(shí)只是為了運(yùn)行shell文件,如果你對(duì)自己的DosBatch水平有信心也可以改造成不用cygwin)。能對(duì)服務(wù)器性能、網(wǎng)絡(luò)性能以及應(yīng)用程序性能做測(cè)試。如果需要使用幫助的可以留言,或者來(lái)信chenpengyi#gmail.com。
***一個(gè)就是SPECjbb2000,以前叫2000,現(xiàn)在更名2005了,好像要收費(fèi),不便宜,所以……咳咳,不多說(shuō)了,誰(shuí)要是知道這個(gè)免費(fèi)了請(qǐng)通知一下。
【編輯推薦】
- 全面認(rèn)識(shí)JVM垃圾回收機(jī)制
- JVM、JRE、JDK的區(qū)別和聯(lián)系
- 探索Java工作原理之JVM內(nèi)存回收
- 實(shí)例解析Linux平臺(tái)的JVM性能評(píng)測(cè)
- 深入JVM:ClassLoader相關(guān)知識(shí)簡(jiǎn)介