# GC$B$NLdBj(B

**URL:** <https://www.ruby-forum.com/t/gc-b-nldbj-b/167949>\
**Category:** Development\
**Created:** [May 14, 2009, 11:17am UTC](https://www.ruby-forum.com/t/gc-b-nldbj-b/167949 "2009-05-14T11:17:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 14, 2009, 11:17am UTC](https://www.ruby-forum.com/t/gc-b-nldbj-b/167949/1 "2009-05-14T11:17:59Z")

</div>

ã‘ã„ã˜ã‚…ï¼ ã„ã—ã¤ã‹ã§ã™.

æ·»ä»˜ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’å®Ÿè¡Œã™ã‚‹ã¨. ã»ã¨ã‚“ã©ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆ(æ–‡å­—åˆ—)ãŒ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

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 18, 2009, 11:48am UTC](https://www.ruby-forum.com/t/gc-b-nldbj-b/167949/2 "2009-05-18T11:48:46Z")

</div>

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, removed\_email\_address@domain.invalid (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

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 18, 2009, 2:03pm UTC](https://www.ruby-forum.com/t/gc-b-nldbj-b/167949/3 "2009-05-18T14:03:29Z")

</div>

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: removed\_email\_address@domain.invalid \<\<—
