kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:

> > > で、参照カウント方式でないと、incremental GCは、ほぼ不可能です。
> >     河野さん…言語屋でないとはいえ、それはあんまりでしょ。   久野
> 
> え、そう? どんなの考えているんですか?
> 
> Reference counting しない incremental GC って言えば、あれが
> あるけど、実際に実装したのはないんじゃないかなぁ。

> 今年のPOPLには、Reference count の計算量みたいな話が出ていて、
> 「やっぱり、だめだぁ」みたいな話だったし。僕も、Reference
> count はダメだと思っていた方なので「やっぱりね」って感じ
> でした。

"The space cost of lazy reference counting" ですか。

たしかに最近 reference counting に関する話題が少しありましたけど、ポイ
ンタ追跡型のrealtime GCだってありますよ。

たとえば、

David F. Bacon and Perry Cheng and V. T. Rajan: A real-time garbage
collector with low overhead and consistent utilization, Proc. POPL
2003, pp.285-298

Perry Cheng and Guy E. Blelloch: A parallel, real-time garbage collector,
Proc. PLDI 2001, pp.125-136

Taiichi Yuasa, Return Barrier: Incremental Stack Scanning for Snapshot
Real-time Garbage Collection, International Lisp Conference 2002, Oct. 2002

とか。

> まぁ、家で散らかす程度だったら mark & sweep とかでもいいし、
> 帳簿で管理するような物だったら Reference count もいいけど、
> 工場でJust in time やるようなもので、ゴミとそうでないものを
> 区別せずに扱うってのは無理なんだよね。

まあ、たしかにreal-time GCが完全に実用になってるかと言えばそこまで行っ
てないですね。だから Real-time specification for Java ではGCに頼らず
Regionを持ってきたんですよね。GC研究者としては大変くやしいですね。

> で、いまや、リアルタイムでないプログラムなん
> て存在するのかなぁ。

これは大げさでしょ。

少なくともWindowsやUnixで動いてるプログラムにリアルタイムなものなんて
ほぼ皆無なわけだし、Javaで書かれているプログラムもそうでしょ。

コード量の割合にすれば組み込み/リアルタイムのプログラムの方がはるかに
多いかもしれませんけどね。

                                前田敦司