かんだです。

matz / netlab.co.jp (Yukihiro Matsumoto)さんの書かれた、
	「[ruby-list:9265] Re: thread overhead」
からの引用です。

> まつもと ゆきひろです
> 
> In message "[ruby-list:9263] thread overhead"
>     on 98/08/25, "D.Kanda" <MAP2303 / mapletown.net> writes:
> 
> |  かんだです。
> 
> |  Thread のオーバーヘッドについて質問があります。
> 
> Threadのオーバヘッドについては実は定量的な測定が行われたこと
> はないので,なんともいえない部分があるのですが,分かっている
> ことは以下のことです.
> 
>   * RubyのThreadはコンテキスト切り替え時にスタックの内容を全
>     部コピーしているので遅い.が,スクリプト言語として利用す
>     るのに十分な速度は持っている(はず).
> 
>   * Threadの生成のためのコストは通常のオブジェクトを生成する
>     コストと大差ない(はず).Rubyでは大量にオブジェクトを生成
>     するので,このコストが気になる人はRubyを使えないだろう.

  Thread生成の時にはスタックのコピーはされないんですか?
  現在のスタックへの参照をコピーするだけかな?


>   * 止まっているスレッドの数はコンテキスト切り替えがわずかに
>     遅くなるだけで,存在そのものが負担にはならない.
> 
>   * 生きているスレッドがたくさんあってもコンテキスト切り替え
>     のコストはそれほど変わらない.スラッシングも起きない.

  すいません、スラッシングって何ですか?
#slash: 切りつける....違うっぽい:-P


> |  stop() して保存しておくのと、毎回新しいスレッドを生成するのとではどちら
> |が効率がよいのでしょうか?
> 
> というわけで,私からの回答は「やってみないとわからない」とい
> うやや情けないものなんですが,多分,単純に毎回新しいスレッド
> を生成する方がプログラムの見通しが良くなるような気がします.

  オーバーヘッドはあんまり気にしなくていいみたいですね。時々によって見やす
い方を使うことにします。



# 歌詞には MHEG が使えそうな感じ。ちょっと勉強してみよう。