Feature #3203: LazySweepGC patch
http://redmine.ruby-lang.org/issues/show/3203
e$B5/I<<Te(B: Narihiro N.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
e$B$4L5:;BA$7$F$$$^$9!#e(Bnarie$B$G$9!#e(B
CRubye$B$Ne(BGCe$B$Ke(BLazySweepe$B$rAH$_9~$s$@%Q%C%A$r:n@.$7$^$7$?!J%j%S%8%g%se(B27489e$B8~e(B
e$B$1!K!#e(B
= e$B<BAu$K$D$$$Fe(B
== e$B35MWe(B
e$B4pK\E*$K0J2<$NF0:n$r7+$jJV$7$^$9!#e(B
0. e$B%*%V%8%'%/%H$,B-$j$J$/$J$C$?$ie(B 1.e$B$Xe(B
- e$B%^!<%/:Q$_$Ne(BRubye$B%R!<%W%9%m%C%H$N0l$D$r%9%$!<%We(B
e$B$b$7!“6u$-%%V%8%'%/%H$,8+$D$+$l$P%%V%8%‘%/%H$rJV5Q$7!"e(BLazySweepe$B=e(B
e$BN;e(B
3.
e$B$b$7!"6u$-%%V%8%’%/%H$J8+$D$+$i$J$1$l$P!”<!$N%^!<%/:Q$_e(BRubye$B%R!<%W%9e(B
e$B%m%C%H$re(BLazySweepe$B$NBP>]$H$7!"e(B1.e$B$Xe(B
4.
e$B%^!<%/:Q$_e(BRubye$B%R!<%W%9%m%C%H$,$9$Y$F$J$/$J$C$?>l9g$O%^!<%/$r<B;$7!"e(B
1.e$B$Xe(B
LazySweepe$B$7$J$$e(BGCe$B!JIaDL$Ne(BGCe$B!K$b;D$7$F$*$j!"e(BGC.starte$B$N;~$O$3$A$i$r8F$S$^e(B
e$B$9!#e(B
== Rubye$B%R!<%W3HD%!u=L>.e(B
Rubye$B%R!<%W$N3HD%$H=L>.$O%?%$%_%s%0$,0[$J$k$@$1$G$9!#e(B
Rubye$B$N%R!<%W3HD%$Oe(BLazySweepe$B$HF1;~$K9T$$$^$9!#6qBNE*$K$O%R!<%W%9%m%C%H$re(B
1e$B8DA}$d$9$HF1;~$K!"e(BRubye$B%R!<%W%9%m%C%H$re(B1e$B8D%9%$!<%W$9$k$h$&$K$7$F$$$^$9!#e(B
e$B$3$N9)IW$K$h$C$F!"e(BRubye$B%R!<%WFb$K$^$C$?$/6u$-$,$J$$>l9g$G$b!"e(BGCe$BDd;_;~4Ve(B
e$B$r:GDc8B$KM^$($k$3$H$,$G$-$^$9!#e(B
Rubye$B%R!<%W3HD%$re(BLazySweepe$B;~$K9T$&$?$a!“%^!<%/8e$K$O3HD%$N7hDj$r$7$J$1$le(B
e$B$P$J$j$^$;$s!#$=$N$?$a!”%^!<%/;~$K@8$-$F$$$k%*%V%8%‘%/%H?t$r%+%&%s%H$7e(B
e$B$F$$$^$9!#$3$l$K$h$C$F%^!<%/%U%’!<%:$O0JA0$HHf$Y$F>/$7$@$1CY$/$J$j$^$9!#e(B
Rubye$B%R!<%W=L>.$bF1$8$/e(BLazySweepe$B;~$K9T$$$^$9!#e(B
== sorted_heaps_slote$B9=B$BN$NDI2Ce(B
heaps_slote$B9=B$BN$OG[Ns$H$7$F4IM}$9$k$N$r$d$a!"e(BLazySweepe$B$NBP>]$H$J$ke(B
Rubye$B%R!<%W%9%m%C%H$OAPJ}8~%j%9%H$G4IM}$7$F$$$^$9!#e(B
is_pointer_to_heap()e$B4X?t$G$Oe(Bheaps_slote$B9=B$BN$NJQ$o$j$Ke(B
sorted_heaps_slote$B9=B$BN$r;HMQ$9$k$h$&$KJQ99$7$^$7$?!#e(B
= e$B@-G=I>2Ae(B
== e$B%Y%s%A%^!<%/%W%m%0%i%e(B e$B@8$-$F$$$k%*%V%8%'%/%H!";
$s$G$$$k%*%V%8%'%/%H$,$"$kDxEY%P%i%P%i$Ke(BRuby
e$B%R!<%WFb$KJ,I[$9$k$h$&$J%Y%s%A%^!<%/%W%m%0%i%`$r:n@.$7!“7WB,$K;HMQ$7$^e(B
e$B$7$?!J”(E:IU%U%!%$%k;2>H!K!#e(B
== e$B7k2Le(B
GCe$B:GBgDd;;~4V!'e(B48.00ms => 28.00ms (58%)
GCe$BAmDd;;~4V!'e(B0.83ms => 0.92ms (110%)
e$BAmDd;;~4V$O0-$/$J$j$^$9$,!":GBgDd;;~4V$K$D$$$F$O2~A1$,8+$i$l$^$9!#e(B
e$B$=$NB>!"M-MQ$J%Y%s%A%^!<%/$r$4B8$8$G$7$?$iB,$C$F$4Js9p$$$?$@$1$k$H4r$7e(B
e$B$$$G$9!#e(B
= e$BF0:n8!>Ze(B
e$B0J2<$N4D6-$G$Ne(Bmake
test-alle$B$,DL$k!J%Q%C%ABP>]$N%j%S%8%g%s$HHf3S$7$FJQ2=e(B
e$B$,$J$$!K$3$H$r3NG’$7$F$$$^$9!#e(B
$ uname -a
Linux nari-laptop 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09
UTC 2010 i686 GNU/Linux