BEA WebLogic JRockit 7.0 $B$r;H$C$F$_$k(B
$B:n@.F|!'(B2002.12.28
BEA $BJRockit $B$O!"(B
J2SE $B%l%Y%k$N>&MQ(B JavaVM $B$H$7$F$O(B SUN$B!"(BIBM $B$KB3$/CNL>EY$r8X$C$F$$$k!#(B
(Compaq $B$d(B HP $B$N(B JVM $B$O(B SUN $B$N(B Hotspot VM $B$r0\?"$7$?$b$N$,%Y!<%9(B)
$B$7$+$7!"8x3+$5$l$F$$$k>pJs$,>/$J$/$F(B
$B%A%e!<%K%s%0J}K!$,J,$+$j$E$i$$!#(B
$B>/$7D4$Y$?$3$H$r=q$$$F$_$k!#(B
- $B%*%V%8%'%/%H%X%C%@%5%$%:$O(B 2$B%o!<%I(B(8$B%P%$%H(B)
$B%*%V%8%'%/%H%X%C%@%5%$%:$O!"(B
$B$V$C$A$c$1$F8@$&$H(B
java.lang.Object
$B$NBg$-$5$G$"$k!#(B
$B$3$l$O!"(B
Java $B8@8l;EMM$K$b(B JavaVM $B;EMM$G$b5,Dj$5$l$F$$$J$/$F!"(B
JavaVM $B$N
32 $B%S%C%HHG$N(B JavaVM $B$O(B
SUN $B$N(B Hotspot VM $B$,(B 2$B%o!<%I(B(8$B%P%$%H(B)$B!"(B
IBM VM $B$,(B 3 $B%o!<%I(B(12$B%P%$%H(B)$B$H$J$C$F$$$k(B
(
$B$3$3(B$B$r;29M(B)$B!#(B
$B
JRockit $B$N%*%V%8%'%/%H%X%C%@%5%$%:$O!"(B
SUN Hotspot VM $B$HF1$8(B 2 $B%o!<%I(B(8$B%P%$%H(B) $B$N$h$&$@!#(B
-
$B%,!<%Y!<%8%3%l%/%7%g%sJ}<0$O(B 4 $B
JRockit $B$O(B 4$B-Xgc
$B%*%W%7%g%s$G@ZBX$(2DG=!#(B
-Xgc:[gencopy|gencon|singlecon|parallel]
$B%G%U%)%k%H$GA*Br$5$l$k(B GC $B%*%W%7%g%s$O(B
-Xmx $B%5%$%:$,(B 128M $BL$K~$J$i(B gencopy$B!"(B
128M $B0J>e$G(B CPU $B?t$,(B 4 $B8DL$K~$J$i(B gencon$B!"(B
128M $B0J>e$G(B CPU $B?t$,(B 4 $B8D0J>e$J$i(B parallel $B$,(B
$B;XDj$5$l$k!#(B
$B$3$3$^$G$O%^%K%e%"%k$K$b=q$$$F$"$k$N$G(B OK $B$@$,!"(B
$BLdBj$O$3$N(B 4 $B
gencopy $B$H(B gencon $B$O@$BeJL(B GC ($B?7!&5l$N(B2$B@$Be(B) $B$G!"(B
singlecon $B$H(B parallel $B$O@$Be$,$J$/(B
-Xmx/-Xms $B$G;XDj$5$l$?O"B36u4V$r%U%i%C%H$K;H$&$h$&$G$"$k!#(B
$B@$BeJL(B GC $B$N>l9g(B
-Xns $B$G;XDj$7$?%5%$%:$r?7@$Be$N%5%$%:!"(B
$B;D$j$r5l@$Be%5%$%:$H$9$k$h$&$@!#(B
$BL5;XDj$N>l9g$N(B
$B?7@$Be%5%$%:$O(B GC $B%"%k%4%j%:%`$K$h$C$F8GDj$G!"(B
gencopy $B$O(B -Xns640k$B!"(B gencon $B$O(B -Xns16m $B$N$h$&$@!#(B
$B%5!<%P!<%W%m%0%i%`$G@-G=$r>e$2$k$K$O(B
$B?7@$Be$rBg$-$/$9$k$N$,>oF;!#(B
$B$7$+$7!"(B
gencopy $B$K$*$$$F$O(B
-Xns $B$K(B -Xmx $B%5%$%:$NH>J,0J>e$r;XDj$9$k$H%(%i!<$,H/@8$9$k(B
(Windows $BHG$N>l9g(B $B%(%i!<%@%$%"%m%0$,I=<($5$l$k(B)$B!#(B
$B$^$?!"(B
-Xns $B$N;XDj$rBg$-$/$7$F$$$/$H!"(B
$BDL>o$N(B GC $B$,H/@8$7$J$/$J$j!"(B
$B6/@)E*$K(B Full GC $B$N$_$K$J$kogCM$,$"$k$h$&$@!#(B
-Xmx128m -Xms128m -Xns22m ... GC $B$,5/$3$k(B
-Xmx128m -Xms128m -Xns23m ... Full GC $B$7$+5/$-$J$$(B
-Xmx256m -Xms256m -Xns44m ... GC $B$,5/$3$k(B
-Xmx256m -Xms256m -Xns45m ... Full GC $B$7$+5/$-$J$$(B
-Xmx512m -Xms512m -Xns89m ... GC $B$,5/$3$k(B
-Xmx512m -Xms512m -Xns90m ... Full GC $B$7$+5/$-$J$$(B
-Xmx $B%5%$%:$N(B 1/6 $B$"$?$j$K6-3&$,$"$k$h$&$@!#(B
gencon $B$O(B -Xns $B$,(B -Xms $B%5%$%:$N(B 1/4 $B$K@)8B$5$l$F$$$k$h$&$@!#(B
$B$=$l$h$j$bBg$-$JCM$r@_Dj$9$k$H!"(B
$B7Y9p$r=P$7$F;_$^$k!#(B
-
$B%7%s!&%9%l%C%I(B(Thin thread)
Classic VM $B$O!"(B
$B%M%$%F%#%V%9%l%C%I(B(native thread) $B$H(B
$B%0%j!<%s%9%l%C%I(B(green thread) $B$N(B 2 $B$D$N%b!<%I$,$,$"$C$?!#(B
$B%M%$%F%#%V%9%l%C%IJ}<0$O(I$(B
Java $B%9%l%C%I(B 1 $B$D$KBP$7$F(B
OS $B$N%9%l%C%I$r(B 1 $B$D3d$jEv$F$kJ}K!$G!"(B
Java $B%9%l%C%I$N%9%1%8%e!<%j%s%0$O(B
OS $B$N%9%1%8%e!<%iG$$;$K$J$k!#(B
$B%0%j!<%s%9%l%C%IJ}<0$O!"(B
JavaVM $B$NFbIt$N%9%l%C%I$,(B
$B%?%$%^!<3d$j9~$_$H(B setjump/longjump $B$r;HMQ$7$J$,$i!"(B
Java $B%9%l%C%I$r;~J,3d$G8+$;$kJ}K!$@$C$?!#(B
$B%9%1%8%e!<%j%s%0$O(B JavaVM $B$,G$0U$K%3%s%H%m!<%k$G$-$k$,!"(B
$B=i4|$N%0%j!<%s%9%l%C%I$O%o!<%+!<%9%l%C%I$,(B 1 $B$D$@$1$@$C$?$N$G!"(B
$B%^%k%A(B CPU $B%^%7%s$G$b(B 1 CPU $BJ,$N%Q%o!<$7$+;H$($J$+$C$?!#(B
SUN $B$N(B J2SE $B$NK\N.(B Hotspot VM $B$O!"(B
$B7k6I(B $B%0%j!<%s%9%l%C%I$r;_$a$F%M%$%F%#%V%9%l%C%I(B 1$BK\$K$J$C$?!#(B
$B$7$+$7!"(B
$BHs>o$KB?$/$N(B Java $B%9%l%C%I$r:n$k(B Java $B%W%m%0%i%`$N>l9g!"(B
$B%M%$%F%#%V%9%l%C%I$GF0$+$9$H%j%=!<%9$,B-$i$J$/$J$C$?$j(B
$B%9%1%8%e!<%j%s%0$N%*!<%P!<%X%C%I$,LdBj$K$J$k$N$G$"$k!#(B
$B$=$3$G=P$F$-$?(B Thin thread$B!#(B
$B%^%k%A(B CPU $B$GF0:n$9$k%0%j!<%s%9%l%C%I$G$"$k!#(B
$BM}O@>e!"(B
$B%"%/%F%#%V$KF0$/(B Java $B%9%l%C%I?t$,B?$$>l9g$K(B
$BF0:n$,8~>e$9$k$O$:$G$"$k!#(B
JRockit $B$O(B -Xthinthreads $B$rIU$1$l$P%*%s$K$J$k!#(B
$B$G!"(B
$Bl9g$K$O@-G=$N$,8~>e$9$k$,!"(B
1$BHV8z2L$,$"$,$j$=$&$J(B Volano Benchmark $B$G$O(B
$B5U$K@-G=$,Dc2<$7$F$7$^$C$?!#(B
- Thread-Local Allocation
$B$3$l$O(B SUN Hotspot VM $B$N(B UseTLE $B$d!"(B
IBM VM $B$N(B cache allocation $B$HF1$8$b$N$N$h$&$K8+$($k!#(B
$B;29M!'(B
$B%[%o%$%H%Z!<%Q!
$B%3%a%s%H(B
TOP
$B7G<(HD(B
$BLa$k(B
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp