bia*_*lix 5 c c++ garbage-collection boehm-gc
我在LinuxJournal上读过有关Boehm-Demers-Weiser垃圾收集器库的文章.我很有兴趣在我的库中使用它而不是我自己的引用计数实现.
我只有一个问题:是否可以仅将gc用于我的共享库,并且仍然在主应用程序中使用malloc/free?我不太明白gc如何检查堆,所以我担心在这种情况下gc的性能和可能的副作用.
Pie*_*ter 3
手册中的示例指出:
通常最好不要将垃圾收集分配与系统混合在一起malloc。free如果这样做,则需要小心,不要将指向垃圾收集堆的指针存储在系统分配的内存中malloc。
malloc
free
更具体地说,对于 C++:
对于 C++,您需要特别小心,不要将指向垃圾收集堆的指针存储在收集器未跟踪的区域中。该收集器包括一些备用接口,以使其更容易。
查看手册中的源代码,您会发现垃圾收集的内存是通过特定的调用来处理的,因此,管理是单独处理的(由收集器或手动处理)。因此,只要您的库正确处理其内部并且不暴露收集的内存,就应该没问题。你不知道其他库如何管理它们的内存,你也可以使用它们,不是吗?:)
归档时间:
15 年,7 月 前
查看次数:
986 次
最近记录: