[ruby-dev:39866] Re: [Feature #2471] want to choose a GC algorithm

From: wanabe <s.wanabe@...>
Date: 2009-12-10 10:06:27 UTC
List: ruby-dev #39866
ワナベと申します。

09/12/10 KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>:
>> Feature #2471: want to choose a GC algorithm
>> GC のアルゴリズムを複数用意して、選択可能にするのはどうでしょうか。

> ほとんどのユーザは自分のワークロードに最適なGCを選ぶ十分な情報を
> 持っていないので、エンドユーザ視点ではあまり意味がない拡張に思えます。
> また、オープンソースの性質として安易なワークアラウンドを用意すると適切な
> フィードバックが返ってこなくなるのでデフォルトGCの改善が遅れるという
> リスクがあります。
>
> これは誰がうれしくなることを意図しているパッチなのでしょうか?

GC に全然詳しくないので、外した事を書いてしまったらすみません。
例えば、アクションゲームを Ruby で作りたい場合は LazySweep を指定したほうがいい
というような定石として広まると面白い、と考えていました。
そういった方がどれだけいるか知りませんが。

というのが建前で、本音は GC 開発者およびその傍観者に嬉しいというのが大きいです。
(この傍観者は、GC に興味があるけれども手は出せない私のような人を指します。)
言われてみると確かに、デフォルト GC の改善の遅れにつながる可能性は否定できません。
しかし、第二、第三の GC の改善にはつながります。

前述の LazySweep を例に取れば、試したい場合は自分でパッチを当てなければならず、
活発に開発されている trunk に追随するのはかなり面倒でした。
そのため広くは使われず(失礼な言い方ですみません)、その結果 nari さんが
デバッグ等ほぼ(すべて?)お一人で完成させたものと認識しています。

どの面においてもデフォルトの GC を超える GC がさっとできればそれでいいのですが
どこかに不利な点があると本採用とはならず、上のように使われず改善も遅れます。

これではあまりに非効率的なので、レポジトリにのせて気軽に試せるようにし
そこで広くデバッグしたほうがいいのではないか、というのが趣旨です。
そうしていずれデフォルトが置き換えられるかもしれませんし、そうでもないかもしれません。
置き換えられなかったとしても、一番最初に挙げたように有用な局面が Tips 的に広まれば
それはそれで価値があると思います。

-- 
ワナベ

In This Thread