版权归原作者所有,如有侵权,请联系我们

[科普中国]-贝姆垃圾收集器

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

贝姆垃圾收集器是计算机应用在C/C++语言上的一个保守的垃圾回收器(garbage collector),可应用于许多经由C\C++开发的专案。

定义Boehm-Demers-Weiser garbage collector,也就是著名的Boehm GC,是计算机应用在C/C++语言上的一个保守的垃圾回收器,可应用于许多经由C/C++开发的专案,同时也适用于其它执行环境的各类编程语言,包括了GNU版Java编译器执行环境,以及Mono的Microsoft .NET移植平台。同时支援许多的作业平台,如各种Unix操作系统,微软的操作系统(Microsoft Windows),以及麦金塔上的操作系统(Mac OS X),还有更进一步的功能,例如:渐进式收集(incremental collection),平行收集(parallel collection)以及终结语意的变化(variety offinalizersemantics)。1

垃圾回收垃圾回收(英语:Garbage Collection,缩写为GC)在计算机科学中是一种自动的存储器管理机制。当一个电脑上的动态存储器不再需要时,就应该予以释放,以让出存储器,这种存储器资源管理,称为垃圾回收。垃圾回收器可以让程序员减轻许多负担,也减少程序员犯错的机会。垃圾回收最早起源于LISP语言。目前许多语言如Smalltalk、Java、C#和D语言都支持垃圾回收器。1

范例垃圾收集器作用于未变性的(unmodified)C程式,只要简单的将malloc呼叫用GC_malloc取代,将realloc取代为GC_realloc呼叫,如此一来便不需要使用到free的函式。下列的程式码展示出如何用Boehm取代传统的malloc以及free。

#include "gc.h" #include #include int main() { int i; GC_INIT(); for(i = 0; i