著者
小林広和 寺田 実
出版者
一般社団法人情報処理学会
雑誌
情報処理学会プログラミング研究報告
巻号頁・発行日
pp.37-42, 1997
被引用文献数
2

GNU Emacsはテキストエディタとして世界中で、多くの人々に使われている。そのGNU EmacsはEmacs LispというLisp言語で書かれているが、Emacs Lispのごみ集めはマークスイープ法であり、ごみ集めの処理によって起こる通常処理の中断時間によりシステムの応答性の低下が起きている。ごみ集めによって起こる処理の中断時間を短縮し、システムの応答性を向上させるために世代別ごみ集めをEmacsに実装した。本実装の特徴は世代間参照の検出方法に仮想メモリのダーティビット情報を利用することによって、通常処理の速度低下を招かず、既存のシステムに大きな変更を加えること無くごみ集めによる処理の中断時間を短縮することができたことである。本稿では、今回行なった世代別ごみ集めの実装法と、性能計測について報告する。
著者
小林 広和 寺田 実
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.41, no.7, pp.1948-1955, 2000-07-15

世代別ごみ集めは,ごみ集めの実行によって起こるプログラムの通常処理の停止時間を短縮できるので,対話的なアプリケーションや実時間的なアプリケーションに適している.しかし,世代別ごみ集めを実装する場合には,プログラムの通常処理で起こる古いオブジェクトへの書き換えの検出を行う必要があり,その書き換えの検出のために必要なプログラムの修正コストや,書き換えの検出によって起こる通常処理の実行時のオーバヘッドが問題となる.本論文では,テキストエディタであるGNU Emacsに,古いオブジェクトの書き換えの検出にダーティビット情報を用いた世代別ごみ集めを実装し,プログラムの修正のコストやプログラム実行時のオーバヘッドの問題を回避できることを実験によって示す."Generational garbage collection can reduce mutator pause times due to garbage collection,so it is appropriate for a interactive application and a real time application.But to implement a generational garbage collector,we must keep track of rewritings of old object by mutator,so it is a problem that the cost of program's modification due to tracking ofrewritings and the overhead of mutator due to it.In this paper,we implement a generational garbage collector to text editor GNU Emacswhich uses dirty bit information for tracking old objects rewritings,and we present the result of experiment which shows its problem is avoided.