Garbage collection Libraries in C++

What free and commercial garbage collection libraries are available for C++, and what are the pros and cons of each?

I am interested in hard-won lessons from actual use in the field, not marketing or promotional blurb.

There is no need to elaborate on the usual trade offs associated with automatic garbage collection, but please do mention the algorithms used (reference counting, mark and sweep, incremental, etc.) and briefly summarise the consequences.


I have used the Boehm collector in the past with good success. It's open source and can be used in commercial software.

It's a conservative collector, and has a long history of development by one of the foremost researchers in garbage collection technology.


Boost has a great range of smart pointers which impliment reference counting or delete-on-scope exit or intrusive reference counting. These have proven enough for our needs. A big plus is that it is all free, open source, templated C++. because it is reference counting, in most cases it is highly deterministic when an object gets destroyed.


The Boehm garbage collector is freely available, and supposedly rather good (no first hand experience myself)

([PDF WARNING]Theoretical paper about C++0x proposal for the Boehm garbage collector)

It was originally said to make C++0x , but will not make it after all (due to time constraints I suppose).

Proprosal N2670 (minimal support for garbage collectors) did get approved in june 2008 though, so as compiler implementations pick up on this, and the standard gets finalised, the garbage collection world out there for C++ is sure to change...

链接地址: http://www.djcxy.com/p/27152.html

上一篇: Java垃圾收集如何与循环引用一起工作?

下一篇: 垃圾收集C ++中的库