- 著者
-
木山 真人
- 出版者
- 一般社団法人情報処理学会
- 雑誌
- 情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
- 巻号頁・発行日
- vol.42, no.3, pp.40-48, 2001-03-15
- 被引用文献数
-
1
迅速なソフトウェア開発の要求が高まるにつれて,オブジェクト指向スクリプト言語は,より多くの場面で使用されている.これまでのスクリプト言語は,主に小規模なプログラムに使用されていたが,オブジェクト指向スクリプト言語はその保守性の高さから大規模なプログラムにも使用されている.一般に,オブジェクト指向言語ではプログラマの負担を軽くするため,メモリ管理を処理系側で行う実装となっている.そのため,処理系はメモリを有効に利用するために,不要になったメモリを回収し再利用可能にするためのごみ集め処理(GC)が必要になる.多くのオブジェクト指向スクリプト言語はGCを有しているが,実装の容易さから,マークスイープ法,リファレンスカウント法が用いられている.しかし,これらの方法ではプログラムの規模が大きくなるにつれて,GC処理時間の全実行時間に占める割合が大きくなる.そこで,プログラムの実行時間を短縮するため, GCの高速化に着目し,世代別GCの導入を検討する.本論文では,オブジェクト指向スクリプト言語Rubyに世代別GCを実装する場合の方法および結果を示す.世代別GCにすることで,従来のGCにくらべGC処理時間が最大92%,プログラムの実行時間が最大50エ%短縮することが分かった.Object-oriented scripting languages are becoming more and more important as a tool for software development, as it provides great flexibility for rapid application development.Scripting languages have been used for developing small-scale programs, object-oriented scripting languages are also used for developing large-scale programs. n general, memory management is implemented in object-oriented language in order to reduce programmers burden. Garbage Collection is necessary to collect and reuse the unnecessary memory to utilize the memory effectively. Mark-sweep and reference counting are general use among most object-oriented scripting languages. But these method, the ratio of whole execution time to GC execution time will increase as program size increase. In order to reduce program execution time, we introduce generational garbage collection in Ruby. In this paper, we show the method of implementation of generational garbage collection in Ruby, and how efficient that. It can reduce 50エ% of total execution time and 92エ of the cost of garbage collecting for our benchmark.