티스토리 뷰

A garbage collector for C and C++

Boehm-Demers-Weiser에 의해 개발된 GC이다.
C/C++용 가비지 콜렉터로 사용해도 좋고, 메모리 릭 탐지기(leak detector)로 사용해도 무방하다.

지원하는 플랫폼은  Linux, *BSD, recent Windows versions, MacOS X, HP/UX, Solaris, Tru64, Irix 등이며 원하는 사람은 포팅해도 된다. 

현재 다양한 프로젝트에서 사용되고 있는데, gcj, w3m, mozilla, mono, dotgnu, eclipse 및 각종 대학의 연구 프로젝트 패키지에서 사용되고 있다. 

다음에서 다운로드 가능하다.

한 페이지에 담기에는 내용이 아주 방대하다. :)
--------
그 외 GC에 대한 일반적인 얘기들을 읽어 볼 수 있을 것이다. (가급적 홈페이지를 직접 방문하는게 좋겠으나, 아래 몇개는 링크를 걸어둔다.)

garbage collection에 대한 일반적인 정보 링크 모음:

Paul Wilson's garbage collection ftp archive and GC survey.

The Ravenbrook Memory Management Reference.

David Chase's GC FAQ.

Richard Jones' GC page and his book.

The following papers describe the collector algorithms we use and the underlying design decisions at a higher level.

(Some of the lower level details can be found here.)

The first one is not available electronically due to copyright considerations. Most of the others are subject to ACM copyright.

Boehm, H., "Dynamic Memory Allocation and Garbage Collection", Computers in Physics 9, 3, May/June 1995, pp. 297-303. This is directed at an otherwise sophisticated audience unfamiliar with memory allocation issues. The algorithmic details differ from those in the implementation. There is a related letter to the editor and a minor correction in the next issue.

Boehm, H., and M. Weiser"Garbage Collection in an Uncooperative Environment"Software Practice & Experience, September 1988, pp. 807-820.

Boehm, H., A. Demers, and S. Shenker, "Mostly Parallel Garbage Collection", Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation,SIGPLAN Notices 26, 6 (June 1991), pp. 157-164.

Boehm, H., "Space Efficient Conservative Garbage Collection", Proceedings of the ACM SIGPLAN '93 Conference on Programming Language Design and Implementation, SIGPLAN Notices 28, 6 (June 1993), pp. 197-206.

Boehm, H., "Reducing Garbage Collector Cache Misses", Proceedings of the 2000 International Symposium on Memory Management Official version. Technical report version. Describes the prefetch strategy incorporated into the collector for some platforms. Explains why the sweep phase of a "mark-sweep" collector should not really be a distinct phase.

M. Serrano, H. Boehm, "Understanding Memory Allocation of Scheme Programs", Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, 2000, Montreal, Canada, pp. 245-256. Official version. Earlier Technical Report version. Includes some discussion of the collector debugging facilities for identifying causes of memory retention.

Boehm, H., "Fast Multiprocessor Memory Allocation and Garbage Collection", HP Labs Technical Report HPL 2000-165. Discusses the parallel collection algorithms, and presents some performance results.

Boehm, H., "Bounding Space Usage of Conservative Garbage Collectors", Proceeedings of the 2002 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Jan. 2002, pp. 93-100. Official version. Technical report version. Includes a discussion of a collector facility to much more reliably test for the potential of unbounded heap growth.

The following papers discuss language and compiler restrictions necessary to guaranteed safety of conservative garbage collection.

We thank John Levine and JCLT for allowing us to make the second paper available electronically, and providing PostScript for the final version.

Boehm, H., ``Simple Garbage-Collector-Safety'', Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation.

Boehm, H., and D. Chase, ``A Proposal for Garbage-Collector-Safe C Compilation''Journal of C Language Translation 4, 2 (Decemeber 1992), pp. 126-141.

Other related information:

The Detlefs, Dosser and Zorn's Memory Allocation Costs in Large C and C++ Programs. This is a performance comparison of the Boehm-Demers-Weiser collector to malloc/free, using programs written for malloc/free.

Joel Bartlett's mostly copying conservative garbage collector for C++.

John Ellis and David Detlef's Safe Efficient Garbage Collection for C++ proposal.

Henry Baker's paper collection.

Slides for Hans Boehm's Allocation and GC Myths talk.