From: nobu.nakada@... Date: 2002-03-06T22:51:37+09:00 Subject: [ruby-dev:16238] Re: filename within eval なかだです。 At Mon, 31 Dec 2001 15:50:07 +0900, Nobuyoshi-Nakada wrote: > > |> [ruby-talk:28803]や[ruby-talk:29211]+[ruby-talk:29341]でも直り > > |> ますが、とりあえずこんな感じでも一応直ります。 > > | > > |もうちょっとマシ…かどうかはともかく、新しい手を考えてみました。 > > |たぶんGCもそれほど遅くはならないと思います。 > > > > 当面[ruby-dev:15603]でいこうと思います。 > > 正月休みに[ruby-dev:15610,15611]について検討してみますけど。 > > あー、やっぱダメダメ。ruby_sourcefileからしか参照されてない名前 > を忘れてるのはともかく、こんなのはやっぱりVALUEでないと。 やっぱり一応ちゃんと動いてるようです。二ヵ月少々使っていて不具合は見当 たりませんでした。[ruby-bugs:PR#257]のような報告もありますし、そろそろ 結論を出した方がいいのでは。 また、Bob Alexander(PR#257の投稿者)とやりとりしたときに計測した結果、 [ruby-dev:16215]の効果がかなり大きいことが分かりました。1.6.7は [ruby-dev:15610,15611]だけ、1.7.2は[ruby-dev:15894,15902]も当ててあり ます([ruby-dev:16215]でも同様)が、8倍くらい違います。増加量だけ見ると 20倍以上です。 $ cat /tmp/bug.rb require "tempfile" PSFORMAT = "-opid,%cpu,%mem,vsz,rss,command" PS = ["ps", "--no-header", PSFORMAT, $$.to_s] system("ps", PSFORMAT, $$.to_s) 1000.times do |i| f = Tempfile.new("test") f.close(true) if i % 100 == 99 system(*PS) GC.start end end $ ruby16 -v /tmp/bug.rb ruby 1.6.7 (2002-03-01) [i686-linux] compiled: 2002-03-01T07:57:40 PID %CPU %MEM VSZ RSS COMMAND 27960 0.0 0.3 3000 1532 ruby16 -v /tmp/bug.rb 27960 95.6 5.7 23696 22288 ruby16 -v /tmp/bug.rb 27960 99.9 9.6 38528 37120 ruby16 -v /tmp/bug.rb 27960 99.9 9.6 38528 37120 ruby16 -v /tmp/bug.rb 27960 99.4 9.6 38436 37028 ruby16 -v /tmp/bug.rb 27960 98.7 9.6 38464 37056 ruby16 -v /tmp/bug.rb 27960 97.9 9.6 38492 37084 ruby16 -v /tmp/bug.rb 27960 99.6 9.6 38492 37084 ruby16 -v /tmp/bug.rb 27960 98.9 9.6 38452 37044 ruby16 -v /tmp/bug.rb 27960 98.4 9.6 38480 37072 ruby16 -v /tmp/bug.rb 27960 97.9 9.6 38480 37072 ruby16 -v /tmp/bug.rb $ ruby17 -v /tmp/bug.rb ruby 1.7.2 (2002-03-01) [i686-linux] compiled: 2002-03-01T15:41:55 PID %CPU %MEM VSZ RSS COMMAND 27976 6.0 0.4 3084 1612 ruby17 -v /tmp/bug.rb 27976 84.4 0.8 4760 3348 ruby17 -v /tmp/bug.rb 27976 90.6 0.8 4808 3396 ruby17 -v /tmp/bug.rb 27976 92.4 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 93.7 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 94.4 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 95.2 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 95.5 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 95.9 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 96.4 0.8 4828 3416 ruby17 -v /tmp/bug.rb 27976 96.6 0.8 4828 3416 ruby17 -v /tmp/bug.rb -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦