ã‘ã„ã˜ã‚…ï¼ ã„ã—ã¤ã‹ã§ã™.
添付ã®ãƒ—ãƒã‚°ãƒ©ãƒ を実行ã™ã‚‹ã¨. ã»ã¨ã‚“ã©ã®ã‚ªãƒ–ジェクト(æ–‡å—列)ãŒGCã§å›žåŽ
ã•ã‚Œãªã„ã¾ã¾æ®‹ã£ã¦ã—ã¾ã„ã¾ã™.
ã“ã‚Œã£ã¦, rubyå´ã§ã‚‚ã£ã¨åŠ¹çŽ‡ã‚ˆãGCã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ã£ã¦ã“ã¨ã¯ä¸å¯èƒ½ã§ã—ょ
ã†ã‹?
ã¡ãªã¿ã«, コメントをã¯ãšã™ã¨ã‚´ãƒŸãŒå›žåŽã•ã‚Œã¾ã™.
ã„ã‚ã‚“ãªãƒ‘ターンã®ã‚¹ã‚¯ãƒªãƒ—トも添付ã—ã¾ã™. Queueを使ã£ã¦ã„ã¦ã‚‚åŒã˜å•é¡Œ
ãŒèµ·ã“ã‚Šã¾ã™. 1.9ç³»ã ã¨ã»ã¼ç¢ºå®Ÿã«å†ç¾ã—ã¾ã™ã—, 1.8ç³»ã ã¨å†ç¾ã™ã‚‹å ´åˆã‚‚
ã‚ã‚‹ã£ã¦ã‹ã‚“ã˜ã«ãªã£ã¦ã„ã¾ã™.
–
def foo(times)
exp = []
times.times do
exp.push rand.to_s
end
exp.push nil
exp
end
def bar(exp)
while e = exp.shift
e
end
p exp
end
exp = foo(1000000)
bar(exp)
#exp = foo(100)
#bar(exp)
GC.start
count = 0
ObjectSpace.each_object(String){|s| count += 1}
puts count
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
In message “Re: [ruby-dev:38448] GCe$B$NLdBje(B”
on Thu, 14 May 2009 18:17:12 +0900, [email protected] (Keiju
ISHITSUKA) writes:
|e$BE:IU$N%W%m%0%i%`$r<B9T$9$k$He(B. e$B$[$H$s$I$N%*%V%8%’%/%He(B(e$BJ8;zNse(B)e$B$,e(BGCe$B$G2s<}e(B
|e$B$5$l$J$$$^$^;D$C$F$7$^$$$^$9e(B.
|
|e$B$3$l$C$Fe(B, rubye$BB&$G$b$C$H8zN($h$/e(BGCe$B$9$k$h$&$K$9$k$C$F$3$H$OIT2DG=$G$7$ge(B
|e$B$&$+e(B?
e$B$U$`!#e(B
% ruby -v /tmp/gc.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
[]
1000160
e$B$?$7$+$K2s<}$5$l$F$J$$$+$b$7$l$^$;$s$M!#$G$b!"e(B1.9e$B$G$O$A$g$Ce(B
e$B$H;v>p$,0c$&$h$&$G$9!#e(BMBARIe$B%Q%C%A$r<h$j9~$s$@$s$G$7$?$C$1e(B >
e$B$J$+$@$5$se(B
% ruby1.9 -v /tmp/gc.rb
ruby 1.9.2dev (2009-05-17 trunk 23479) [i686-linux]
[]
1352
e$B$H$$$&$o$1$G!"?7$7$a$Ne(B1.9e$B$r;H$C$F$b$i$&$N$O$I$&$G$7$g$&!#e(B
e$B$1$$$8$e!w$$$7$D$+$G$9e(B.
In [ruby-dev:38487] the message: “[ruby-dev:38487] Re: GCe$B$NLdBje(B”,
on
May/18 18:47(JST) Yukihiro M. writes:
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
e$B$?$7$+$K2s<}$5$l$F$J$$$+$b$7$l$^$;$s$M!#$G$b!"e(B1.9e$B$G$O$A$g$Ce(B
e$B$H;v>p$,0c$&$h$&$G$9!#e(BMBARIe$B%Q%C%A$r<h$j9~$s$@$s$G$7$?$C$1e(B > e$B$J$+$@$5$se(B
e$B$H$$$&$o$1$G!"?7$7$a$Ne(B1.9e$B$r;H$C$F$b$i$&$N$O$I$&$G$7$g$&!#e(B
e$B:G?7HG$@$H%F%9%H%W%m%0%i%`$NJ}$O$A$c$s$He(BGCe$B$5$l$k$h$&$K$J$C$F$$$^$9$Me(B.
e$B$?$@e(B,
e$B<B:]$KLdBj$NH/@8$7$F$$$k%W%m%0%i%`$NJ}$O2~A1$7$F$J$$$h$&$G$9e(B…
e$B$3$A$i$NJ}$Oe(B, ruby1.8e$B$G$O%4%$,;D$i$J$$$N$KBP$7e(B,
ruby1.9e$B$G$O%4%$,$+$Je(B
e$B$j;D$C$F$7$^$$$^$9e(B.
e$B$d$C$F$$$k$3$H$Oe(B, e$B%F%9%H%W%m%0%i%`$H;w$F$$$^$9$,e(B,
e$B$b$&$A$g$C$HJ#;($K$J$Ce(B
e$B$F$$$^$9e(B. e$B$Ge(B,
MBARIe$B%Q%C%A$C$F2?$r$*$3$J$C$F$$$k$N$G$7$g$&e(B? e$B>l9g$K$h$Ce(B
e$B$F$O%3!<%G%#%s%0$r9)IW$9$k$H$A$c$s$He(BGCe$B$5$l$k$N$+$J$H;W$o$J$/$b$J$$$N$Ge(B
e$B$9$,e(B?
__
---------------------------------------------------->> e$B@PDMe(B
e$B7=<ye(B <<—
---------------------------------->> e-mail: [email protected] <<—