请问,有人熟悉Boehm GC吗? 我想在Phoenix的word-count app( https://github.com/kozyraki/phoenix )中使用它,但是我没有修改Makefile以包含GC库。 在 Boehm 的文档页面上,他们只提供了一个简单的 c 示例和一个从 GC ...
请问,有人熟悉Boehm GC吗? 我想在Phoenix的word-count app( https://github.com/kozyraki/phoenix )中使用它,但是我没有修改Makefile以包含GC库。 在 Boehm 的文档页面上,他们只提供了一个简单的 c 示例和一个从 GC ...
我想在 MacOS 上安装Boehm 垃圾收集器垃圾收集器。 我查看了本指南,但没有帮助; 调用brew install libgc什么也没做。 这是我尝试运行的示例代码: #include <gc/gc.h> int main() { void* eight_bytes = ...
我正在编写一个 C 程序,它使用 Apple 的 Blocks 扩展来提供词法闭包。 我也在使用 Boehm 垃圾收集器。 我想要的是 Block_copy() 在堆上分配块时使用 GC_MALLOC ,以便它们被垃圾收集。 我使用-DREDIRECT_MALLOC=GC_MALLOC -DRE ...
Boehm GC 中 Threads 和 Fibers 的处理有什么区别? Win32 CreateFiber 仅采用所需的堆栈大小并分配它,而不授予用户访问堆栈指针的权限(据我所知)。 Boehm GC 是否自动将创建的堆栈识别为根? 如果没有,我们如何让 GC 知道堆栈? 我们使用 Ge ...
由于一个私有 API function 调用,我的 iOS 应用程序(使用Boehm垃圾收集器)在 AppStore 中被拒绝。 这是文件os_dep.c : 这里是文件的链接: github 上的 os_dep.c 我试图注释掉 function定义和call ,应用程序似乎运行良好,但这是一个非 ...
我在我的C程序中使用Boehm-GC进行垃圾收集。 我正在尝试并行化适用于数组的for循环。 该数组是通过GC_malloc分配的。 执行完循环后,程序中不再使用该数组。 我调用GC_gcollect_and_unmap释放数组。 但是,当我使用openmp并行化for循环时,在执行完 ...
我有一个个人项目,我使用Boehm GC实现。 我需要实现一种事件类型,它应该包含对其他事件的引用。 但我还需要确保指向的事件仍然是可收集的,因此我需要弱引用。 假设我们有事件A,B和C.我将这些事件配置为在发出任何信号时发出事件X的信号。 这意味着A,B和C必须保存对事件X的引用。 ...
根据手册, GC_MALLOC清除内存,但GC_MALLOC_ATOMIC不清除内存。 https://www.hboehm.info/gc/gcinterface.html 那么GC_MALLOC_ATOMIC应该用来替换malloc而GC_MALLOC应该用来替换calloc ...
我在Unity的Boehm-Demers-Weiser垃圾收集器上运行 ,这是一个非世代的GC。 我在内存中有一棵大的托管对象树(约100k个对象,约200MiB分配)。 这些对象本质上是一个缓存,并且永远不会超出范围,因此它们实际上不会被GC清除。 但是,由于Boehm是非世 ...
Boehm gc仅处理内存分配。 但是,如果要使用垃圾回收来处理fopen() ,则不再需要fclose() 。 有没有办法在C中做到这一点? PS例如,PyPy采用垃圾回收方法来处理打开的文件。 这样做的最明显的效果是,超出范围的文件(和套接字等)不会立即关闭。 对于打开 ...
Qt可以与BDW-GC一起使用吗? 我知道Qt有一个复杂的内存管理系统,但是我的实现的部分内容还是会使用GC,因此不打扰并且始终使用它会很方便。 据我所读,一个问题可能是Qt具有特定的析构函数,在释放对象时必须调用这些析构函数。 因此,我可能不得不手动注册终结器,这些终结器称为析构函数 ...
我在mingw32项目中使用gc,遇到了以下问题:当程序静态链接时,没有问题,程序运行正常。 但是,将某些组件移动到dll后,程序崩溃了。 有什么建议吗? 问候,bostjanv ...
CPython是一个多线程应用程序,因此在Unix上,它使用(p)线程。 Python扩展(例如,用C编写)经常需要保持GIL,以确保Python对象在代码的关键部分不会被损坏。 其他类型的数据呢? 具体来说,将GIL保留在Python扩展中是否可以确保CPython的所有其他线程停止运行 ...
我在Android x86上的Boehm中发生了奇怪的崩溃(但是arm可以正常工作); 崩溃: 有: LogCat:I / DEBUG(6453):信号11(SIGSEGV),代码1(SEGV_MAPERR),故障加法器0xa31f8 它总是在失败处使用相同的地址(0 ...
Boehm 的保守垃圾收集器非常有用(例如Bigloo正在使用它, Guile正在使用类似的东西,等等......),特别是在 Linux 上(这是我唯一关心的操作系统;我使用的是 Debian/Sid/x86 -64 如果这很重要,并且libgc-dev package 是版本1:7.4.2- ...
我试图将一些函数从glib绑定到Crystal。 我做到了这一点,它的工作原理: 但是它引入了内存泄漏:使用g_ *函数创建的对象永远不会被垃圾回收。 在水晶中使用Boehm GC可以使glib发挥得更好吗? 受到PCRE的启发,我试过这个: 希望覆盖/重新定义g_ma ...
我试图在这个简单的代码中使用libgc(BDW垃圾收集器)。 注意,该引用仅限于假“列表”中的最后一个节点,因此,生存集只是最后两个节点。 但它不能保持在内存限制内: $ gcc -O0 gc.c -lgc -o gc $ GC_MAXIMUM_HEAP_SIZE = ...
Boost.Coroutine 分配自己的调用栈。 Boehm GC 是否将这些堆栈上的指针视为根,如果不是,我如何才能做到这一点? 在上下文切换到协程后,Boehm 终止程序。 ...
我正在尝试将Boehm垃圾收集器与GLib集成在Linux中,但在一种情况下,我发现它并没有释放内存:当我多次调用g_strsplit时,它会耗尽内存和段错误。 垃圾收集器的README警告它可能无法在动态库中查找指针,并且可能需要使用GC_add_roots。 为了测试这一点,我将GL ...
我正在尝试在Mac上安装交流垃圾收集器。 我已经下载了所有必需的文件(git,automake等)。 我遵循网站http://www.hboehm.info/gc/上的说明。 当我到达命令“ automake --add-missing”时,我收到以下消息: 有人能帮我吗? 我究 ...