mail protected]$BeJL GC について

e$B?9ED$H?=$7$^$9!%e(B

Ruby [email protected]$BeJLe(B GC
e$B$NF3F~$K$D$$$F6=L#$r;}$C$F$$$F!$D4::$r9T$C$F$$$^$9!%e(B

e$B$$$/$D$+<ALd$,$"$j$^$9!%e(B

  1. 2001,2002e$BG/$KLZ;3$5$s$,@$BeJLe(B GC
    e$B$r<BAu$5$l$F$$$^$9e(B(1)e$B$,!$D4$Y$?8Be(B
    e$B$j$G$O!$e(B[ruby-dev:17677] e$B$G$N$^$D$b$H$5$s$Ne(B

e$B$G!"$^[email protected]%^!<%8$7$F$J$$M}[email protected]$R$H$D!"!Ve(B1.7e$B$N%a%b%j3d$jEve(B
[email protected],[email protected]$BeJLe(BGCe$B$N$[$&$,B.$$%1!<%9$,8+$D$+$i$J$$!W$;$$e(B
e$B$G$9!#e(Bwrite barrier e$B$N%3%9%H$N$;$$$+!"$+$J$j?M9)E*$J%F%9%H%1!<e(B
e$B%[email protected]$BeJL$G$J$$$[$&$,B.$$$G$9!#e(B

e$B$H$$$&H/[email protected]$NB>[email protected]$BeJLe(B GC e$B$N%3%9%HLdBj$K4X$9$ke(B public
[email protected]$rH/8+e(B
e$B$G$-$F$$$^$;$s!%$3$NLdBj$K4X$9$kD4::$dJs9p$,B>$K$J$5$l$F$$$k$+$I$&$+!$e(B
e$B$I$J$?$+$4B8CN$J$$$G$7$g$&$+!)e(B

e$BLZ;[email protected]$$h$SH/I=%9%i%$%I$r8+$k8B$j$G$O!$Bg$-$J%F%-%9%HJ8=q$de(B
XMLe$BJ8=q$r=hM}$9$k>[email protected]$i$l$F$$$k$h$&$G$9!%e(B
e$B8D?ME
0U8+$H$7$F$O[email protected]$1$G$b==J,$KF3F~$9$k0UL#$,$"$k$h$&$K;W$$$^$9!%e(B

  1. e$BLZ;3$5$s$N<BAu$NB>$K!$e(BRuby (Rite,
    e$B8=:_$N0BDjHG4^$a$Fe(B)e$B$Ne(B GC e$B$N2~A1$Ke(B
    e$B4X$9$k8&5f$d3hF0$OA4$/9T$o$l$F$$$J$$$N$G$7$g$&$+!)e(B

e$B:#G/$Ne(B 6/12 e$B$Ke(B http://www.ruby-forum.com/topic/69026
e$B$G$b<ALd$r$5$le(B
e$B$F$$$kJ}$,$$$^$9$,!$H?1~$O$J$$$h$&$G$9!%e(B

  1. RHGe$B$G$O!$e(B Rite e$B$G$Oe(B Boehm GC
    e$B$rF3F~$9$kM=Dj$H$N5-=R$,$"$j$^$7$?e(B(2)
    e$B$,!$$=$l$K$D$$$F$O8=:_$I$N$h$&$J>u67$K$J$C$F$$$k$N$G$7$g$&$+!)e(B

e$B>[email protected]$K4X$7$F2?$+$4B8CN$NJ}$,$$$i$C$7$c$$$^$7$?$i!$65$([email protected]$1$Je(B
e$B$$$G$7$g$&$+!%e(B

e$B$J$*!$8=:e(B GC
e$B$K4X$7$FB>$KC/$b$d$C$F$$$k?M$,$$$J$1$l$P!$$R$H$^$:<+J,$,e(B
e$BF0$$$F$
$h$&$+$H9M$($F$$$^$9!%e(B
e$B$H$j$"$($:LZ;3$5$s$N%Q%C%A$r8=9T$Ne(B 1.8
e$B7ONse(B e$B$K0?"$9$k$H$3$m$+$i$d$C$F$_$kM=Dj$G$9!%e(B

e$B;29MJ88%e(B
(1) http://lc.linux.or.jp/lc2001/papers/ruby-gc-paper.pdf
http://www.syst.cs.kumamoto-u.ac.jp/~masato/research/master-slide/index.html
(2) http://www.loveruby.net/ja/rhg/book/gc.html
http://www.loveruby.net/ja/rhg/book/fin.html

In article [email protected],
MORITA Naoyuki [email protected] writes:

e$B$G!"$^[email protected]%^!<%8$7$F$J$$M}[email protected]$R$H$D!"!Ve(B1.7e$B$N%a%b%j3d$jEve(B
[email protected],[email protected]$BeJLe(BGCe$B$N$[$&$,B.$$%1!<%9$,8+$D$+$i$J$$!W$;$$e(B
e$B$G$9!#e(Bwrite barrier e$B$N%3%9%H$N$;$$$+!"$+$J$j?M9)E*$J%F%9%H%1!<e(B
e$B%[email protected]$BeJL$G$J$$$[$&$,B.$$$G$9!#e(B

e$B$H$$$&H/[email protected]$NB>[email protected]$BeJLe(B GC e$B$N%3%9%HLdBj$K4X$9$ke(B public [email protected]$rH/8+e(B
e$B$G$-$F$$$^$;$s!%$3$NLdBj$K4X$9$kD4::$dJs9p$,B>$K$J$5$l$F$$$k$+$I$&$+!$e(B
e$B$I$J$?$+$4B8CN$J$$$G$7$g$&$+!)e(B

Ruby e$B$Ne(B GC e$B$K$D$$$F$O!"$^$D$b$H$5$s$,e(B IPSJ PRO
e$B$GH/I=$7$F$$e(B
e$B$^$7$?!#e(B

e$B%*%V%8%%/%H;X8~%9%/%j%W%[email protected]$KE,$7$?$4$_=8$a<jK!e(B
e$B>>K\9T90!J%M%C%H%o!<%/1~MQDL?.8&5f=j!"Eg:,Bg!K!"Fl<j2mI!JEg:,Bg!Ke(B
http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4702009&mode=
http://staff.aist.go.jp/h-ogawa/pro2005-1/

e$B$^$D$b$H$5$s$KMj$`[email protected]$r$/$l$k$+$b$7$l$^$;$s!#e(B

e$B;d$N<j85$K$Oe(B (IPSJ PRO e$B$O;22C<T$Ke(B
USBe$B%a%b%[email protected]$rG[$k$N$Ge(B)
e$B$"$j$^$9$,!"!Ve(B1.7e$B$N%a%b%[email protected],[email protected]$BeJLe(BGCe$B$N$[$&e(B
e$B$,B.$$%1!<%9$,8+$D$+$i$J$$!W$H$$$&$h$&$JOC$,=R$Y$i$l$F$$$^$9e(B
e$B$M!#e(B

[email protected]!"$3$NA0$Ne(B rubykaigi e$B$Ge(B reject
e$B$5$l$?!"$H$$$C$F$$$?$N$Oe(B
e$B$3$l$r;X$7$F$$$k5$$,$7$^$9$N$G!"$3$l$re(B public [email protected]$H$$$&$+e(B
e$B$H$$$&$HHyL/$+$b$7$l$^$;$s!#e(B

e$BLZ;[email protected]$$h$SH/I=%9%i%$%I$r8+$k8B$j$G$O!$Bg$-$J%F%-%9%HJ8=q$de(B
XMLe$BJ8=q$r=hM}$9$k>[email protected]$i$l$F$$$k$h$&$G$9!%e(B
e$B8D?ME
[email protected]$1$G$b==J,$KF3F~$9$k0UL#$,$"$k$h$&$K;W$$$^$9!%e(B

e$B$=$l$O!Ve(B1.7e$B$N%a%b%[email protected],$NJQ99!W0JA0$NOC$J$s$8$c$J$$e(B
e$B$G$7$g$&$+e(B?

e$B$=$l0J8e$N$,$"$k$s$G$7$?$i$<$R65$([email protected]$1$k$H$&$l$7$$$G$9!#e(B
e$B$=$NJQ99$rDs0F$7$?$b$N$J$N$G6=L#$,$"$j$^$9!#e(B[ruby-dev:13652]

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message Re: [ruby-dev:28960] [email protected]$BeJLe(B GC e$B$K$D$$$Fe(B
on Wed, 5 Jul 2006 06:47:06 +0900, MORITA Naoyuki
[email protected] writes:

|Ruby [email protected]$BeJLe(B GC e$B$NF3F~$K$D$$$F6=L#$r;}$C$F$$$F!$D4::$r9T$C$F$$$^$9!%e(B
|
|e$B$$$/$D$+<ALd$,$"$j$^$9!%e(B
|
|1. 2001,2002e$BG/$KLZ;3$5$s$,@$BeJLe(B GC e$B$r<BAu$5$l$F$$$^$9e(B(1)e$B$,!$D4$Y$?8Be(B
| e$B$j$G$O!$e(B[ruby-dev:17677] e$B$G$N$^$D$b$H$5$s$Ne(B
|
|> e$B$G!"$^[email protected]%^!<%8$7$F$J$$M}[email protected]$R$H$D!"!Ve(B1.7e$B$N%a%b%j3d$jEve(B
|> [email protected],[email protected]$BeJLe(BGCe$B$N$[$&$,B.$$%1!<%9$,8+$D$+$i$J$$!W$;$$e(B
|> e$B$G$9!#e(Bwrite barrier e$B$N%3%9%H$N$;$$$+!"$+$J$j?M9)E*$J%F%9%H%1!<e(B
|> e$B%[email protected]$BeJL$G$J$$$[$&$,B.$$$G$9!#e(B
|
| e$B$H$$$&H/[email protected]$NB>[email protected]$BeJLe(B GC e$B$N%3%9%HLdBj$K4X$9$ke(B public [email protected]$rH/8+e(B
| e$B$G$-$F$$$^$;$s!%$3$NLdBj$K4X$9$kD4::$dJs9p$,B>$K$J$5$l$F$$$k$+$I$&$+!$e(B
| e$B$I$J$?$+$4B8CN$J$$$G$7$g$&$+!)e(B

e$B:rG/!";d$,$A$g$C$He(BGCe$B$K$D$$$F:n6H$7$^$7$?$,!"$=$l0J30$K$O$5$le(B
e$B$F$$$J$$$H;W$$$^$9!#e(B

| e$BLZ;[email protected]$$h$SH/I=%9%i%$%I$r8+$k8B$j$G$O!$Bg$-$J%F%-%9%HJ8=q$de(B
| XMLe$BJ8=q$r=hM}$9$k>[email protected]$i$l$F$$$k$h$&$G$9!%e(B
| e$B8D?ME
[email protected]$1$G$b==J,$KF3F~$9$k0UL#$,$"$k$h$&$K;W$$$^$9!%e(B

e$B$"$l$Oe(B1.4e$B$KBP$9$k$b$N$G!"$"[email protected]$G$O2~A1$,8+$i$l$k%1!<%9$Ne(B
e$BB?$/$O!e(B1.8e$B$G$O:9$,$J$$$+!@-G=$,Dc2<$7$^$9!#[email protected]!"$^[email protected]%W%me(B
e$B%U%!%$%k$O<h$C$F$$$J$$$N$G!"$3$l$,%i%$%H%P%j%"$,=E$$$;$$$J$Ne(B
e$B$+!"<BAu$K2?$+LdBj$,$"$k$N$+$O$o$+$C$F$$$^$;$s!#e(B

|2. e$BLZ;3$5$s$N<BAu$NB>$K!$e(BRuby (Rite, e$B8=:_$N0BDjHG4^$a$Fe(B)e$B$Ne(B GC e$B$N2~A1$Ke(B
| e$B4X$9$k8&5f$d3hF0$OA4$/9T$o$l$F$$$J$$$N$G$7$g$&$+!)e(B
|
| e$B:#G/$Ne(B 6/12 e$B$Ke(B http://www.ruby-forum.com/topic/69026 e$B$G$b<ALd$r$5$le(B
| e$B$F$$$kJ}$,$$$^$9$,!$H?1~$O$J$$$h$&$G$9!%e(B

e$B;d$,:rG/!"e(B1bit reference countinge$B$N<BAu$r9T$$$^$7$?!#$3$l$be(B
e$B$[[email protected]=8~>e$,8+$i$l$^$;$s$G$7$?!#;DG0!#e(B

|3. RHGe$B$G$O!$e(B Rite e$B$G$Oe(B Boehm GC e$B$rF3F~$9$kM=Dj$H$N5-=R$,$"$j$^$7$?e(B(2)
| e$B$,!$$=$l$K$D$$$F$O8=:_$I$N$h$&$J>u67$K$J$C$F$$$k$N$G$7$g$&$+!)e(B

e$B8=;[email protected]$G$OM=Dj$O$J$$$G$9!#e(BGCe$B$N$h$&$JK<AE*$JItJ,[email protected]$1EO$9$Ne(B
e$B$K$O$+$J$jDq93$,!#$,!":{ED$/$s$,7h?4$9$l$P%"%j$+$b$7$l$J$$!#e(B

|e$B$J$*!$8=:e(B GC e$B$K4X$7$FB>$KC/$b$d$C$F$$$k?M$,$$$J$1$l$P!$$R$H$^$:<+J,$,e(B
|e$BF0$$$F$
$h$&$+$H9M$($F$$$^$9!%e(B e$B$H$j$"$($:LZ;3$5$s$N%Q%C%A$r8=9T$Ne(B 1.8
|e$B7ONse(B e$B$K0?"$9$k$H$3$m$+$i$d$C$F$_$kM=Dj$G$9!%e(B

e$BLZ;3%Q%C%A$Ne(B1.8e$BBP1~$O$=$s$J$KFq$7$/$J$$$O$:$G$9!#;d$b0lEY$d$Ce(B
e$B$?$3$H$,$"$j$^$9!#$=$l$r$5$7$"$2$F$bNI$$$N$G$9$,!"$d$C$F$$ke(B
e$B$H9=B$$,$h$/$o$+$k$N$G1i=,LdBj$H$7$?$[$&$,$h$$$N$+$b$7$l$^$;e(B
e$B$s!#I,MW$J$i65$($F$/[email protected]$5$$!#$I$C$+$N%G%#%9%/$KL2$C$F$$$k$H;We(B
e$B$&$N$G!"C5$7$F$
$^$9!#e(B

[email protected]!"$"$l$O3N$+e(Blambdae$B$de(Bcontinuatione$B$J$I$NBP1~$,$G$-$F$J$+$Ce(B
e$B$?$h$&$K;W$&$N$G!"<BMQ%l%Y%k$K$"$?$C$F$O$=$NJU$b9MN8$9$kI,MWe(B
e$B$,$"$j$^$9$M!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

e$BLZ;3$G$9!%e(B

e$BLZ;[email protected]$$h$SH/I=%9%i%$%I$r8+$k8B$j$G$O!$Bg$-$J%F%-%9%HJ8=q$de(B
XMLe$BJ8=q$r=hM}$9$k>[email protected]$i$l$F$$$k$h$&$G$9!%e(B
e$B8D?ME
[email protected]$1$G$b==J,$KF3F~$9$k0UL#$,$"$k$h$&$K;W$$$^$9!%e(B

e$BEDCf$5$s!$$^$D$b$H$5$s$,$$C$7$c$C$F$$$k$h$&$K!$e(B
e$B$3$N%9%i%$%I$ND4::$O%a%b%[email protected],$NJQ99$,9T$o$l$kA0$N>pJs$G$9$N$G!$e(B
e$B:#$O0c$&$N$G$O$J$$$G$7$g$&$+!%e(B
e$B%a%b%[email protected],$NJQ99$N$
$+$2$G!$e(BGCe$B$,%%H%k%M%C%/$K$J$k%W%m%0%i%$,e(B e$B8:$C$?$s$8$c$J$$$G$9$+$M!%e(B e$B$=$b$=$b8=>u$Ne(BRubye$B$Ge(BGCe$B$,%\%H%k%M%C%/$K$J$k%W%m%0%i%$C$F$"$k$s$G$9$+$M!)e(B

e$B$J$*!$8=:e(B GC e$B$K4X$7$FB>$KC/$b$d$C$F$$$k?M$,$$$J$1$l$P!$$R$H$^$:<+J,$,e(B
e$BF0$$$F$
$h$&$+$H9M$($F$$$^$9!%e(B e$B$H$j$"$($:LZ;3$5$s$N%Q%C%A$r8=9T$Ne(B 1.8
e$B7ONse(B e$B$K0?"$9$k$H$3$m$+$i$d$C$F$_$kM=Dj$G$9!%e(B

e$B4hD%$C$F$/[email protected]$5$$!%e(B
e$B$b$7I,MW$G$7$?$i!$KM$N%I%/%?!<[email protected]$b$*EO$7$7$^$9$N$G!%e(B

e$B$G$O$G$Oe(B

e$B?9ED$G$9!%e(B

e$B$_$J$5$^$"$j$,$H$&$4$6$$$^$9!%e(B

e$B$R$H$^$:!$e(B

e$BEDCf$5$s!$$^$D$b$H$5$s$,$*$C$7$c$C$F$$$k$h$&$K!$e(B
e$B$3$N%9%i%$%I$ND4::$O%a%b%[email protected],$NJQ99$,9T$o$l$kA0$N>pJs$G$9$N$G!$e(B
e$B:#$O0c$&$N$G$O$J$$$G$7$g$&$+!%e(B

[email protected]$K4X$7$FN;2r$7$^$7$?!%e(B

e$B<B$O!$e(B1.4 e$B$G8z2L$r=P$7$F$$$?$b$N$,e(B 1.8
e$B$G$O8z2L$,=P$J$/$J$C$?$H$$$&[email protected](B
e$B$K$D$$$F>:Y$J%G!<%?$,8+Ev$?$i$J$+$C$?$N$G5?Ld$K;W$C$F$$$?$N$G$9$,!$3+e(B
e$BH/<T$N4V$G$O$h$/CN$i$l$?;v<B$J$s$G$9$M!%e(B

[email protected]!$e(B

e$B%a%b%[email protected],$NJQ99$N$*$+$2$G!$e(BGCe$B$,%%H%k%M%C%/$K$J$k%W%m%0%i%$,e(B e$B8:$C$?$s$8$c$J$$$G$9$+$M!%e(B e$B$=$b$=$b8=>u$Ne(BRubye$B$Ge(BGCe$B$,%\%H%k%M%C%/$K$J$k%W%m%0%i%$C$F$"$k$s$G$9$+$M!)e(B

[email protected]$K4X$7$F$O$A$g$C$H5?Ld$r;}$C$F$$$^$9!%e(B

e$B<+J,$N7P83$G$9$,!$%F%-%9%H%U%!%$%ke(B(CSVe$B$J$Ie(B)e$B$K=q$+$l$?Bg$-$J%F!<%V%k$re(B
e$B%Q!<%9$7$Fe(BHashe$B$J$I$KFI$9~$!$ItJ,E*$K2C9)$9$k$J$I$7$?8e$K%"%s%Q!<%9$7e(B
e$B$J$,$i%U%!%$%k$K=q$-=P$9$h$&$J%W%m%0%i%`$r=q$/$H!$%F!<%V%k$N%5%$%:$,$e(B
e$B$kDxEYBg$-$/e(B(e$B85$N%F%-%9%H%G!<%?$G?te(BMBe$B!A==?te(BMBe$BDxEYe(B)e$B$J$C$?;~$K6KC<$KCY$/e(B
e$B$J$k0u>]$,$$j$^$9!%e(B

e$B;d$,@$BeJLe(BGCe$B$rF3F~e(B{e$B$7$?$$e(B/e$B$7$FM_$7$$e(B}e$B$H$$$&F05!$b4pK\E*$K$3$3$K$"$j$^e(B
e$B$9!%e(B

e$B$G!$$3$N0u>]$N860x$,[email protected]>/$7D4$Y$F$_$^$7$?!%e(B

e$B>e$G=R$Y$?$h$&$J%W%m%0%i%$N%b%G%k%1!<%9$H$7$F!$:G=i$KBg$-$J%5%$%:$N%O%Ce(B e$B%7%e%F!<%V%k$r:n$j!$$=$N8e$=$N%F!<%V%k$O0];}$7$?$^$^$G$R$?$9$iJ8;zNs$re(B e$B:n$C$F$O<N$F$k$H$$$&%W%m%0%i%$rF0$+$7$F<B9T;~4V$r7WB,$7$F$_$^$7$?!%e(B

e$B<B83$K;HMQ$7$?%W%m%0%i%`$Oe(B http://na.yuki.st/src/gctest.rb
e$B$G!$e(B
e$B7WB,7k2L$Oe(B http://na.yuki.st/tmp/speed.png
e$B$N$h$&$K$J$j$^$7$?!%e(B

e$B$"[email protected]$K6aIU$/[email protected]~7A$KCY$/$J$j!$$=$3$r1[$([email protected]~7?$J;~4V$N?-$SJ}$r$7e(B
e$B$F$$$k$h$&$K8+$($^$9!%e(B

e$B$^[email protected]%W%m%U%!%$%k$O<h$C$F$_$F$$$J$$$N$G$9$,!$$3$N7k2L$r8+$k8B$j$G$O!$e(BGC
e$B%"%k%4%j%:%`$=$N$b$N$NLdBj$H$$$&$h$j$O!$e(BGCe$B3+;O$N%9%l%C%7%g%k%I$d!$%"%me(B
e$B%1!<%7%g%sJ}K!$J$I$NLdBj$H9M$($?J}$,BEEv$J$N$G$7$g$&$+!)e(B
e$B$^$?!$$3$N$h$&$J7k2L$K$J$k$3$H$O$h$/CN$i$l$?;v<B$J$N$G$7$g$&$+!)e(B

e$B$3$l0J30$N7o$K$D$$$F$O8eDx$*JV;v$5$;[email protected]$-$^$9!%e(B
e$B$h$m$7$/$*4j$$$7$^$9!%e(B

In article [email protected],
MORITA Naoyuki [email protected] writes:

e$B$F$$$k$h$&$K8+$($^$9!%e(B
e$B$^[email protected],[email protected]$1$7$+8+$F$^$;$s$,!"6=L#?<$$$G$9$M!#e(B
e$B2~A1$NM>CO$,B8:[email protected]$i$+$K<($7$F$$$k$h$&$K;W$($^$9!#e(B

e$B$^[email protected]%W%m%U%!%$%k$O<h$C$F$_$F$$$J$$$N$G$9$,!$$3$N7k2L$r8+$k8B$j$G$O!$e(BGC
e$B%"%k%4%j%:%`$=$N$b$N$NLdBj$H$$$&$h$j$O!$e(BGCe$B3+;O$N%9%l%C%7%g%k%I$d!$%"%me(B
e$B%1!<%7%g%sJ}K!$J$I$NLdBj$H9M$($?J}$,BEEv$J$N$G$7$g$&$+!)e(B
e$B$^$?!$$3$N$h$&$J7k2L$K$J$k$3$H$O$h$/CN$i$l$?;v<B$J$N$G$7$g$&$+!)e(B

GC e$B$r$I$&$$$&%?%$%_%s%0$G5/F0$9$k$+!"$"$k$$$O!"$=$b$=$be(B GC
e$B$r$9$k$+e(B OS e$B$K%a%b%j$rMW5a$7$F%R!<%W$r9-$2$k$+!"$H$$$&H=CG$,e(B
e$B$"$^$j$&$^$/$$$+$J$$$3$H$,$"$k!"$H$$$&[email protected]$H;W$$$^$9!#e(B

e$B2?2s$+!LdBj$,=P$?$H$-$K$^$D$b$H$5$s$,<j$rF~$l$F!$=$l$K$H$be(B
e$B$J$C$F%H%i%V%k$,5/$3$ke(B (e$BA4A3e(B GC
e$B$5$l$J$/$J$C$F%a%b%j$r?)$$$9e(B
e$B$.$k$H$+e(B) e$B$H$$$&$3$H$,$"$C$?3P$($,$"$j$^$9!#e(B

e$B;d$H$7$F$O!e(BGC e$B$K$+$+$k;[email protected])8f$7$?$i$I$&$+!$H$$$&e(B
e$B%"%$%G%"$r;}$C$F$$$^$9$,!"$I$&$+$J$!!#e(B[ruby-dev:19250]

In article [email protected],
Tanaka A. [email protected] writes:

e$B$^[email protected]%W%m%U%!%$%k$O<h$C$F$_$F$$$J$$$N$G$9$,!$$3$N7k2L$r8+$k8B$j$G$O!$e(BGC
e$B%"%k%4%j%:%`$=$N$b$N$NLdBj$H$$$&$h$j$O!$e(BGCe$B3+;O$N%9%l%C%7%g%k%I$d!$%"%me(B
e$B%1!<%7%g%sJ}K!$J$I$NLdBj$H9M$($?J}$,BEEv$J$N$G$7$g$&$+!)e(B
e$B$^$?!$$3$N$h$&$J7k2L$K$J$k$3$H$O$h$/CN$i$l$?;v<B$J$N$G$7$g$&$+!)e(B

GC e$B$r$I$&$$$&%?%$%_%s%0$G5/F0$9$k$+!"$"$k$$$O!"$=$b$=$be(B GC
e$B$r$9$k$+e(B OS e$B$K%a%b%j$rMW5a$7$F%R!<%W$r9-$2$k$+!"$H$$$&H=CG$,e(B
e$B$"$^$j$&$^$/$$$+$J$$$3$H$,$"$k!"$H$$$&[email protected]$H;W$$$^$9!#e(B

GC e$B8e$K$I$N$/$i$$6u$$$F$l$P%R!<%W$r9-$2$k$+!"$H$$$&4p=`$r$$e(B
e$B$8$/$k$H2~A1$G$-$k$h$&$G$9$M!#e(B

4096e$B8D6u$$$F$l$P!"$H$$$&$N$r!e(B2e$B3d6u$$$F$l$P!$H$9$k$H!"$3$&e(B
e$B$G$7$g$&$+!#e(B

(e$B8=:_$Ne(B) GC e$B$O%R!<%W$N%5%$%:$KHfNc$7$?%3%9%H$,$+$+$k$N$G!"Dje(B
e$B?t$7$+6u$+$J$$$J$i$o$j$K9g$o$J$$$C$F$3$H$G$7$g$&$M!#e(B

e$B$3$NLdBj$KBP$7$F!"@$BeJLe(B GC e$B$,@5$7$$2r$+$H$$$&$H!"$5$F!"$I$&e(B
e$B$+$J!#e(B

Index: gc.c

RCS file: /src/ruby/gc.c,v
retrieving revision 1.241
diff -u -r1.241 gc.c
gc.c 29 Jun 2006 14:57:41 -0000 1.241
+++ gc.c 6 Jul 2006 14:14:55 -0000
@@ -1057,6 +1057,14 @@
int freed = 0;
int i;
unsigned long live = 0;

  • unsigned long free_min = 0;

  • for (i = 0; i < heaps_used; i++) {

  •    free_min += heaps[i].limit;
    
  • }

  • free_min = free_min * 0.2;

  • if (free_min < FREE_MIN)

  •    free_min = FREE_MIN;
    

    mark_source_filename(ruby_sourcefile);
    if (source_filenames) {
    @@ -1099,7 +1107,7 @@
    }
    p++;
    }

  • if (n == heaps[i].limit && freed > FREE_MIN) {
  • if (n == heaps[i].limit && freed > free_min) {
    RVALUE *pp;

    heaps[i].limit = 0;
    

@@ -1117,7 +1125,7 @@
if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT;
}
malloc_increase = 0;

  • if (freed < FREE_MIN) {
  • if (freed < free_min) {
    add_heap();
    }
    during_gc = 0;

e$B?9ED$G$9!%e(B

e$BEDCf$5$s$N%Q%C%A$rE,MQ$7$F7WB,$7D>$7$F$_$^$7$?!%e(B
http://na.yuki.st/tmp/speed2.png

e$B$+$J$j2~A1$5$l$?$h$&$K8+$($^$9!%e(B

e$B5$$K$J$k$N$O!$$3$N%R!<%W3HD%@oN,$,LdBj$r5/$3$9%1!<%9$,$"$k$+$I$&$+$H$$e(B
e$B$&[email protected]$G$9$,!%e(B

(e$B8=:_$Ne(B) GC e$B$O%R!<%W$N%5%$%:$KHfNc$7$?%3%9%H$,$+$+$k$N$G!"Dje(B
e$B?t$7$+6u$+$J$$$J$i$o$j$K9g$o$J$$$C$F$3$H$G$7$g$&$M!#e(B

e$B$3$NLdBj$KBP$7$F!"@$BeJLe(B GC e$B$,@5$7$$2r$+$H$$$&$H!"$5$F!"$I$&e(B
e$B$+$J!#e(B

e$B%a%b%j$N;HMQNL$r$h$j%?%$%[email protected])8B$9$k$J$I!$>r7o$d4D6-$rJQ$([email protected]$bJQe(B
e$B$o$C$F$/$k$N$+$bCN$l$^$;$s$,!$8=>u$Ne(B Ruby
e$B$NLdBjNN0h$H$7$F$O$3$l$G$$$$e(B
e$B$N$G$O$J$$$+$H9M$($k$H!$$&!<$s$H$J$C$F$7$^$$$^$9$M!%e(B

e$B0J2<$O;d$NG<1$G$9$,[email protected]$BeJLe(BGCe$B$N$h$&$J<jK!$,8z$$$F$/$k$N$Oe(B

e$B!&%R!<%W;HMQNLe(B e$BBge(B
e$B!&@8B8%*%V%8%%/%H?te(B e$BBge(B
e$B!&%,%Y!<%8e(B e$B>.e(B
e$B!&e(BGCe$B2s?te(B e$BBge(B

e$B$H$$$&>r7o$N$H$-$G$"$j!$:#$Ne(B Ruby
e$B%$%s%?%W%j%?$O$J$k$Y$/e(BGCe$B2s?t$r8:$i$9e(B
e$B$h$&$K%R!<%W$r3NJ]$9$k$h$&[email protected],$r<h$C$F$$$k0Y!$e(B GC
e$B$N8zN(2~A1<jK!$=$Ne(B
e$B$b$N$,8z$-$K$/$$$H$$$&$3$H$J$N$G$7$g$&$+!%e(B

[email protected];(GD$J0u>]$H$7$F!$EDCf$5$s$N%Q%C%A$rEv$F$?>l9g%Z!<%8%U%)!<%k%H$Ne(B
e$B2s?t$O5U$KA}$($F$$$k$N$Ge(B(e$BEvA3$H$$$($PEvA3$G$9$,e(B)e$B!$$=$NJU$j$r9MN8$9$k$He(B
e$B$^$?0c$C$F$/$k5$$O$7$^$9!%e(B

In article [email protected],
MORITA Naoyuki [email protected] writes:

e$B$H$$$&>r7o$N$H$-$G$"$j!$:#$Ne(B Ruby e$B%$%s%?%W%j%?$O$J$k$Y$/e(BGCe$B2s?t$r8:$i$9e(B
e$B$h$&$K%R!<%W$r3NJ]$9$k$h$&[email protected],$r<h$C$F$$$k0Y!$e(B GC e$B$N8zN(2~A1<jK!$=$Ne(B
e$B$b$N$,8z$-$K$/$$$H$$$&$3$H$J$N$G$7$g$&$+!%e(B

e$B$^$!!"%R!<%W$NBg$-$5$KHfNc$7$F;~4V$N$+$+$ke(B GC e$B$r;H$$$J$,$iB.e(B
e$BEYDc2<$r0lDj3d9g0J2<$KM^$($h$&$H$9$l$P!"%R!<%W$NBg$-$5$KHfNce(B
e$B$7$Fe(B GC e$B4V3V$r9-$2$6$k$r$($J$$!"$H$$$&$3$H$G$9$+$M!#e(B

e$B5U$K$$$($P!e(BGC e$B4V3V$r==J,$K9-$2$5$($9$l$PB.EYDc2<$rM^$($i$le(B
e$B$k$N$G!$"$H$OB.EYDc2<$rF1$8$KM^$($k$?$a$K0z$-49$($K$9$k$b$Ne(B
e$B$,Bg$-$$$+>.$5$$$+!"$H$$$&$3$H$G$7$g$&$+!#e(B

[email protected];(GD$J0u>]$H$7$F!$EDCf$5$s$N%Q%C%A$rEv$F$?>l9g%Z!<%8%U%)!<%k%H$Ne(B
e$B2s?t$O5U$KA}$($F$$$k$N$Ge(B(e$BEvA3$H$$$($PEvA3$G$9$,e(B)e$B!$$=$NJU$j$r9MN8$9$k$He(B
e$B$^$?0c$C$F$/$k5$$O$7$^$9!%e(B

e$B$=$&$J$C$F$b$*$+$7$/$J$$e(B (e$B$H$$$&[email protected]$m$&e(B)
e$B$H;W$$$^$9$,!"e(B
e$B$=$l$,@-G=$K$I$NDxEY8z$/$N$+$O!"B,Dj$7$F$_$J$$$3$H$K$O$J$s$He(B
e$B$b!#e(B

e$BB>$K;W$$IU$/LdBj$O!BPOCE*$J%%W%j%1!<%7%g%s$K$*$1$ke(B GC e$B$K$he(B
e$B$kCfCG$"$?$j$+$J$!!#e(B

[email protected]$G$9!#e(B

MORITA Naoyuki wrote:

e$B<B83$K;HMQ$7$?%W%m%0%i%`$Oe(B http://na.yuki.st/src/gctest.rb e$B$G!$e(B
e$B7WB,7k2L$Oe(B http://na.yuki.st/tmp/speed.png e$B$N$h$&$K$J$j$^$7$?!%e(B

e$B$"[email protected]$K6aIU$/[email protected]~7A$KCY$/$J$j!$$=$3$r1[$([email protected]~7?$J;~4V$N?-$SJ}$r$7e(B
e$B$F$$$k$h$&$K8+$($^$9!%e(B

e$B$^[email protected]%W%m%U%!%$%k$O<h$C$F$_$F$$$J$$$N$G$9$,!$$3$N7k2L$r8+$k8B$j$G$O!$e(BGC
e$B%"%k%4%j%:%`$=$N$b$N$NLdBj$H$$$&$h$j$O!$e(BGCe$B3+;O$N%9%l%C%7%g%k%I$d!$%"%me(B
e$B%1!<%7%g%sJ}K!$J$I$NLdBj$H9M$($?J}$,BEEv$J$N$G$7$g$&$+!)e(B
e$B$^$?!$$3$N$h$&$J7k2L$K$J$k$3$H$O$h$/CN$i$l$?;v<B$J$N$G$7$g$&$+!)e(B

e$B!!DI;n$7$F$_$^$7$?!#e(B

e$B!!e(Bhttp://www.atdot.net/fp_store/xv3z1j.file/image002.gif
e$B!J%a%b%j!'e(B2GB e$B$N%^%7%s$G$9e(B / ye$B<4$NC10L$OIC!Ke(B

e$B!!LLGr$$$G$9$M$!#e(BGC
[email protected][email protected]~7A$J$N$G!"@-G=Nt2=$7$F$$$kFC0[[email protected]$G$O!e(B
e$B$d$C$Q$je(B GC e$B$N%Q%i%a!<%?$,$^$:$$$s$G$9$+$M$!#e(Bheaps
e$B$N$$?$j$+$H$O;W$&$1$I!#e(B

e$B?9ED$G$9!#e(B

e$BJV;v$,CY$/$J$j$^$7$?!#e(B

e$B$R$H$^$:!"@-G=I>[email protected]$r3NG$7$?$$$N$G!"LZ;[email protected]$H$^$D$b$H$5$s$Ne(B
1 bit reference
[email protected]$r8+$;[email protected]$1$J$$$G$7$g$&$+!)e(B

e$B2C$($F!"8=:_;}[email protected]$r5s$2$F$*$-$^$9!#e(B

1.7 [email protected]$BeJLe(BGCe$B!"$$h$Se(B1 bit
RCe$B$rF3F~$7$?:[email protected]=$,8~>e$7$J$$$+!e(B
e$B$b$7$/$ODc2<$9$k$H$$$&;v>]$O!$
$*[email protected]$C$F0J2<[email protected]$C$?$N$G$7$ge(B
e$B$&$+!)e(B

(a) GC [email protected]=$K$OKX$I2~A1$,$J$/!"e(BGC
e$B0J30$N%3%9%H$,B?>/A}2C$7$?e(B
(b) GC [email protected]=$K$OKX$I2~A1$,$J$/!e(BGC
e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B
GC [email protected]=$O$$kDxEY$N2~A1$7$?$,!"e(BGC
e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B

e$B>/$J$/$H$bLZ;[email protected]$r8+$?8B$j$G$N0U8+$G$9$,!"e(B

(a) e$B$de(B (b)
[email protected]$C$?$H$9$k$H!e(B1.4(1.6e$B$G$b!)e(B)e$B7ONs$G$Oe(B GC
[email protected]=$N2~A1$,$$Ce(B
e$B$?$K$b$+$+$o$i$:e(B 1.7
[email protected]=$K2~A1$,5/$-$J$/$J$C$?M}M3$,5$$K$J$j$^e(B
e$B$9!#$^$?e(B (b) e$B$de(B
[email protected]$C$?>l9g!"F1MM$K$J$<@-G=$NDc2<$,5/$-$F$$$k$N$+$,e(B
e$B5$$K$J$j$^$9!#e(B

e$B$h$m$7$/$*4j$$$7$^$9!#e(B

In article [email protected],
MORITA Naoyuki [email protected] writes:

e$B2C$($F!"8=:_;}[email protected]$r5s$2$F$*$-$^$9!#e(B

e$B;[email protected]$BeJLe(BGC e$B$r;n$7$F$*$i$:Hf3S$7$F$$$J$$$N$G$J$<$J$N$+3N$?e(B
e$B$k$3$H$O$$$($J$$$N$G$9$,e(B
(e$B$^$!M=A[$7$F$$$k$3$H$O$"$j$^$9$,e(B)e$B!"e(B
e$B$d$O$j$3$3$O<+J,$G;n$9$N$,3N<B$J$N$G$O$J$$$+$H;W$$$^$9!#e(B

1.8 [email protected]$BeJLe(BGCe$B$rF~$l$k$N$O;~4V$,$+$+$k$G$7$g$&$+$i!"@$BeJLe(BGC
e$B$,$9$0$KF~$l$i$l$k%P!<%8%g%s$Ge(B [ruby-dev:13656] e$B$N$h$&$JJQ99e(B
e$B$rF~$l$?$N$r$D$/$C$F!"Hf3S$9$k$N$,AaF;$J$s$8$c$J$$$+$H;W$$$^e(B
e$B$9!#e(B

1.7 [email protected]$BeJLe(BGCe$B!"$$h$Se(B1 bit RCe$B$rF3F~$7$?:[email protected]=$,8~>e$7$J$$$+!e(B
e$B$b$7$/$ODc2<$9$k$H$$$&;v>]$O!$
$*[email protected]$C$F0J2<[email protected]$C$?$N$G$7$ge(B
e$B$&$+!)e(B

(a) GC [email protected]=$K$OKX$I2~A1$,$J$/!"e(BGC e$B0J30$N%3%9%H$,B?>/A}2C$7$?e(B
(b) GC [email protected]=$K$OKX$I2~A1$,$J$/!e(BGC e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B
GC [email protected]=$O$$kDxEY$N2~A1$7$?$,!"e(BGC e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B

e$B;W$&$N$G$9$,!e(BGC [email protected]=$C$F!$J$s$J$s$G$7$g$&e(B?

1.7 e$B$G%R!<%W$N9-$2$+$?$rJQ$($?$H$+!"$"$k$$$O:#2s%R!<%W$r9-$2e(B
e$B$k%?%$%_%s%0$rJQ$($?$H$+$Ge(B GC e$B$N2s?t$r8:$i$7$?$H$$$&$N$O!"@-e(B
e$BG=$,2~A1$5$l$?$H$$$&$3$H$J$s$G$7$g$&$+e(B?

e$B$"$H!"$h$j:,K\E*$J5?Ld$H$7$F!"[email protected]$BeJLe(BGC e$B$C$F%W%m%0%ie(B
e$B%`A4BN$N<B9T;~4V$r0lHL$K8:$i$98z2L$,$"$k$b$N$J$s$G$7$g$&$+e(B?

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

akre$B$5$s$K$O<a2`[email protected]!$J$N$O==J,>5CN$7$F$$$k$N$G$9$,!#e(B

In message Re: [ruby-dev:29086] Re: [email protected]$BeJLe(B GC e$B$K$D$$$Fe(B
on Thu, 20 Jul 2006 01:12:40 +0900, Tanaka A. [email protected]
writes:

|> e$B$b$7$/$ODc2<$9$k$H$$$&;v>]$O!"$$[email protected]$C$F0J2<[email protected]$C$?$N$G$7$ge(B
|> e$B$&$+!)e(B
|>
|> (a) GC [email protected]=$K$OKX$I2~A1$,$J$/!"e(BGC e$B0J30$N%3%9%H$,B?>/A}2C$7$?e(B
|> (b) GC [email protected]=$K$OKX$I2~A1$,$J$/!e(BGC e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B
|> GC [email protected]=$O$$kDxEY$N2~A1$7$?$,!"e(BGC e$B0J30$N%3%9%H$,BgI}$KA}2C$7$?e(B

e$B$A$c$s$HB,Dj$7$F$$$J$$$N$G$J$s$H$b$$$($J$$$N$G$9$,!"?dB,$7$?e(B
[email protected]$He(B

(d) GCe$B$N$"$kItJ,[email protected]=$O$"$kDxEY2~A1$7$?$,!"JL$N%3%9%H$,A}2C$7$?e(B

[email protected]$H;W$$$^$9!#6qBNE*$K$O%^!<%/!&%9%$!<%W$,$d$d2~A1$7$F!"%i%$e(B
e$B%H%P%j%"$N%3%9%H$,A}2C$7$F$$$k$o$1$G$9$,!#$G!"e(B1.7e$B$N%R!<%W$Ne(B
e$B9-$2J}$rJQ$($?4X78$G!"e(BGCe$BIQEY$,2<$,$j!2~A1$5$l$?ItJ,$,$$^$je(B
e$BL\N)$?$J$/$J$j!"A}2C$7$?%3%9%H$N1F6ANO$,AjBPE*$K9b$/$J$C$?$Ne(B
e$B$G$O$J$$$+$H$+$s$,$($F$$$^$9!#e(B

|e$B;W$&$N$G$9$,!e(BGC [email protected]=$C$F!$J$s$J$s$G$7$g$&e(B?

e$B$*$=$i$/$O%]!<%:%?%$%$H%9%k!<%W%C%[email protected]$H;W$$$^$9!#%]!<e(B e$B%:%?%$%$OCfCG;~4Ve(B(e$B$N:GBgCM$HJ?6QCMe(B)e$B$G<($5$l$k$G$7$g$&$7!"%9e(B
e$B%k!<%W%C%H$OA4BN$N<B9T;~4VCf!e(BGC(e$B$H4XO=hM}!"$?$H$($P%i%$%He(B
e$B%P%j%"e(B)e$B$G>CHq$5$l$k;~4V$N9g7W$G$7$g$&!#e(B

|1.7 e$B$G%R!<%W$N9-$2$+$?$rJQ$($?$H$+!"$"$k$$$O:#2s%R!<%W$r9-$2e(B
|e$B$k%?%$%_%s%0$rJQ$($?$H$+$Ge(B GC e$B$N2s?t$r8:$i$7$?$H$$$&$N$O!"@-e(B
|e$BG=$,2~A1$5$l$?$H$$$&$3$H$J$s$G$7$g$&$+e(B?

e$BIaDL$N%3%s%F%-%9%H$G$O!Ve([email protected]=$,[email protected]$o$J$$$he(B
e$B$&$J5$$,$7$^$9!#$,!"[email protected]$N0lK$/$i$$=q$1$k$h$J$e(B
e$B$H;W$C$?$j!;W$o$J$+$C$?$j!#e(B

|e$B$"$H!"$h$j:,K\E*$J5?Ld$H$7$F!"[email protected]$BeJLe(BGC e$B$C$F%W%m%0%ie(B
|e$B%`A4BN$N<B9T;~4V$r0lHL$K8:$i$98z2L$,$"$k$b$N$J$s$G$7$g$&$+e(B?

Rubye$B$N$h$&$J%^!<%/!&%"%s%I!&%9%$!<%We(BGCe$B$K%8%%M%l!<%7%g%J%k$re(B
e$BAH$_9g$o$;$?$H$7$F!"%^!<%/%U%!<%:$H%9%$!<%W%U%!<%:$N;~4V$Ge(B
[email protected]$5$l$k%]!<%:%?%$%$NJ?6QCM$O3N<B$K8:$k$G$7$g$&$,!"%a%8%c!<e(B GCe$B$K$h$k%]!<%:%?%$%$N:GBgCM$OBg:9$J$$$G$7$g$&!#%^%$%J!<e(BGCe$B$Ke(B
e$B$h$k2~A1$b%W%m%0%i%`$K$h$k%*%V%8%%/%[email protected][email protected]$K$h$C$FBg$-e(B
e$B$/:81&$5$l$k$H;W$$$^$9!#%9%k!<%W%C%H$NJ}$O!"%^%$%J!<e(BGCe$B$K$h$Ce(B
[email protected];~4V$H%i%$%H%P%j%"$G>CHq$5$l$k;~4V$N7s$M9g$$$G7h$^$ke(B
e$B$G$7$g$&$,!"$3$l$b%1!<%9%P%$%1!<%9$G$7$g$&!#e(B

e$B$H$$$&$o$1$G!"!V0lHL$K8:$i$9!W$H$$$&[email protected]$,A[5/$5$;$k!V$I$s$Je(B
e$B%1!<%9$G$b2~A1!W$H$$$&$3$H$OFq$7$$$H;W$$$^$9!#e(B

e$B$^!"@$BeJLe(BGCe$B$K$O%Q%i%a!<%?$,B?$$e(B(e$B$$$D%R!<%W$r9-$2$k$+!"$$$De(B
e$B%a%8%c!<e(BGCe$B$r9T$&$+e(B)e$B$G$9$7!"%i%$%H%P%j%"$N8zN(E*$J<BAu$d!"%^!<e(B
e$B%/%S%C%H$NBe$o$j$K%S%C%H%^%C%W$r;H$&$H$+$$$m$$$m$G$-$=$&$J$3e(B
e$B$H$O$"$k$N$G$9$,!"!V6lO+$K8+9g$&$N$+!W$HLd$o$l$k$Hm4m0$7$F$7e(B
e$B$^$&$N$,K\2;$G$9!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs