An efficient non-moving garbage collector for functional languages

Katsuhiro Ueno, Atsushi Ohori, Toshiaki Otomo

研究成果: Conference contribution

7 被引用数 (Scopus)

抄録

Motivated by developing a memory management system that al-lows functional languages to seamlessly inter-operate with C, we propose an efficient non-moving garbage collection algorithm based on bitmap marking and report its implementation and performance evaluation. In our method, the heap consists of sub-heaps {Hi i c ≤ i ≤ B} of exponentially increasing allocation sizes (Hi for 2i bytes) and a special sub-heap for exceptionally large objects. Actual space for each sub-heap is dynamically allocated and reclaimed from a pool of fixed size allocation segments. In each allocation segment, the algorithm maintains a bitmap representing the set of live objects. Allocation is done by searching for the next free bit in the bitmap. By adding meta-level bitmaps that summarize the contents of bitmaps hierarchically and maintaining the current bit position in the bitmap hierarchy, the next free bit can be found in a small constant time for most cases, and in log32(segmentSize) time in the worst case on a 32-bit architecture. The collection is done by clearing the bitmaps and tracing live objects. The algorithm can be extended to generational GC by maintaining multiple bitmaps for the same heap space. The proposed method does not require compaction and objects are not moved at all. This property is significant for a functional language to inter-operate with C, and it should also be beneficial in supporting multiple native threads. The proposed method has been implemented in a full-scale Standard ML compiler. Our benchmark tests show that our non- moving collector performs as efficiently as a generational copying collector designed for functional languages.

本文言語English
ホスト出版物のタイトルICFP'11 - Proceedings of the 2011 ACM SIGPLAN International Conference on Functional Programming
ページ196-208
ページ数13
DOI
出版ステータスPublished - 2011
イベント16th ACM SIGPLAN International Conference on Functional Programming, ICFP'11 - Tokyo, Japan
継続期間: 2011 9 192011 9 21

出版物シリーズ

名前Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP

Other

Other16th ACM SIGPLAN International Conference on Functional Programming, ICFP'11
国/地域Japan
CityTokyo
Period11/9/1911/9/21

ASJC Scopus subject areas

  • ソフトウェア

フィンガープリント

「An efficient non-moving garbage collector for functional languages」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル