【问题标题】:Installing libgc on OSX (Boehm's Garbage Collector)在 OSX(Boehm 的垃圾收集器)上安装 libgc
【发布时间】: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


【解决方案1】:

这个问题相当模糊。您想知道一般如何使用 libgc 还是想知道如何让它在 mac OS X 上运行? 如果以后是这种情况,那么我建议使用 Homebrew。它有一个相当不错的 libgc 公式。只需使用命令:

brew install libgc

这将在 /usr/local/Cellar/libgc/7.6.0 中安装库,具体取决于 HomeBrew 公式中可用的最新版本。

您对 gc.h 不定式指代自己的困惑实际上是不正确的。因为在第一个 gc.h 包含的 gc 子文件夹中还有另一个 gc.h。我不知道他们为什么要这样设计它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2018-12-30
    • 1970-01-01
    • 2011-11-07
    • 2013-04-01
    相关资源
    最近更新 更多