なかだです。

At Mon, 21 Sep 2009 16:52:33 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:39360]:
> Thread#raise が極端に遅くなっていたりしませんか?
> こういうの(↓)を 1.8 と 1.9 とで試すと,
> ----<a.rb>---------------------------------------
> th = Thread.new{
>   begin
>     sleep
>   rescue
>     retry
>   end
> }
> 1000.times{
>   Thread.pass until th.status == 'sleep'
>   th.raise RuntimeError.new('hoge')
> }
> -------------------------------------------------

数十パーセント程度遅めですが、2000倍にはほど遠いですね。

$ cat ruby-dev-39360.rb
require 'benchmark'
Benchmark.bm do |bm|
  bm.report {
    th = Thread.new{
      begin
        sleep
      rescue
        retry
      end
    }
    1000.times{|i|
      begin
        Thread.pass
        abort "thread died at #{i}" unless status = th.status
      end until th.status == 'sleep'
      th.raise('hoge')
    }
  }
end

$ ruby18 ruby-dev-39360.rb
      user     system      total        real
  0.030000   0.010000   0.040000 (  0.040728)
$ ruby19 ruby-dev-39360.rb
      user     system      total        real
  0.030000   0.030000   0.060000 (  0.063855)

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦