【发布时间】:2012-05-21 00:42:40
【问题描述】:
我已经开始在我正在制作的库中使用引用计数。这是一个相当不错的解决方案,增量和减量不会像某些人错误地认为的那样浪费很多资源。用于引用计数的额外内存也可以忽略不计。
但显然跟踪垃圾收集是如此之好,以至于它比使用 malloc/free 更好。我不确定这是否属实,所以我想尝试一下(通过一次释放多个对象来进行后端优化?)。此外,GC 将使我的库更易于使用,因为不需要调用保留/释放函数。
编辑:问题是 gc/gc.h 无限地包含自己。这毫无意义……
谢谢。
【问题讨论】:
-
这不是真的,尽管一些 GC 狂热者会声称它是。 GC 从根本上与 C 不兼容。见 stackoverflow.com/questions/4039274/…
-
gc 只有当 gc 具有比您的应用程序使用过的更多的虚拟地址空间时才能与 handroll 竞争,并且任何合理的开销都无关紧要(它不't,在绝大多数情况下)或者你对参考模式很小心。
-
顺便说一句,我很确定对 Boehm GC 的依赖不会使您的库“更易于使用”,因为它会完全排除在任何需要健壮的应用程序中使用您的库。
-
头文件 gc.h 是否安装在 /usr/local/include 中?目录 /usr/local/include 应该在 GCC 的默认头文件搜索路径中,因此它应该能够在没有任何其他选项的情况下找到它。也许您可以提供更多关于如何编译和链接库的信息?跨度>
-
另外感谢 R。如果在从网络接收信息时进行实际攻击,那么可能导致内存泄漏的漏洞可能是个问题?
标签: c macos garbage-collection shared-libraries