- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试写一些 bindings到用于 Rust 的 Boehm GC。
一些背景:Rust 被设计成一种高并发语言,这种设计的结果是能够将 GC 指针静态限制在分配它们的线程内(即,分配在线程 x 永远不能被另一个线程保持事件状态(甚至根本无法被其他线程引用)。
因此,我希望插入 Boehm 尽可能利用这一点来提高性能:
1 很简单,但我找不到 2 和 3 的任何工具。最重要的部分是 1 和 2,因为我希望能够让线程在后台运行,而不管其他线程在做什么(即使它们都在分配和垃圾收集千兆字节的内存)。
(我做了 know about THREAD_LOCAL_ALLOC
& gc_thread_local.h
,但这并不能完全满足 3,它只是提高了效率,但在线程之间传输本地线程分配的指针仍然有效,而我不需要那个保证。)
最佳答案
我没有关于如何使用 Boehm 执行此操作的答案。然而,这里有两个 GC,它们似乎具有足够的控制和封装,每个线程都有一个完全独立的 GC 上下文。
关于c - 在多个线程中独立运行 Boehm GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20921988/
我在 Mono 的网页上看到他们在精确模式下使用 Boehm GC。我也将 Boehm GC 与 C++ 一起使用,但是,我在其文档或 header 中找不到任何指示精确模式的内容,更不用说如何打开它
我检查了 Boehm GC。 C/C++ 的 GC。 我知道标记清除算法。我很好奇的是它如何在整个 C 内存中只获取指针。我对C内存的理解只是一个普通的字节数组。是否可以确定内存中的值是否为指针? 最
我很好奇有没有大型项目使用过Boehm GC?我特别感兴趣的是是否有任何游戏项目使用了这个垃圾收集器。如果不是,Boehm GC 是否对游戏项目不利? 令我印象深刻的是像这个 Boehm GC 这样的
标记指针是实现动态语言时常见的优化:利用对齐要求,这意味着指针的低两位或三位将始终为零,并使用它们来存储类型信息。 假设您正在使用 Boehm 垃圾收集器,它的工作原理基本上是查看事件数据以查找看起来
我正在阅读论文“不合作环境中的垃圾收集器”,想知道实现它会有多困难。该论文描述了需要从处理器收集所有地址(除了堆栈)。堆栈部分看起来很直观。除了在汇编中显式枚举每个寄存器之外,还有什么方法可以从寄存器
我读过 article in LinuxJournal关于Boehm-Demers-Weiser garbage collector library .我很感兴趣在我的库中使用它而不是我自己的引用计数
我正在尝试写一些 bindings到用于 Rust 的 Boehm GC。 一些背景:Rust 被设计成一种高并发语言,这种设计的结果是能够将 GC 指针静态限制在分配它们的线程内(即,分配在线程 x
我想在 Linux/AMD64/Debian 上使用 GCC 开发一个多线程 C++ 应用程序(最终大部分 C++ 代码将由应用程序本身生成,这可以被视为一种高级领域特定语言) 4.6(可能是最新的
在我的 on-again-off-again 编译器项目中,我将闭包实现为具有可执行前缀的分配内存。所以一个闭包是这样分配的: c = make_closure(code_ptr, env_size,
我有 2 个关于 boehm-gc 的问题。 GC 回收垃圾对象时,即使对象有析构函数,GC 也会释放内存而不调用析构函数。我发现 GC 调用“finailzer”,但我不知道如何注册它...我该怎么
我有一个使用 Boehm GC 实现的个人项目。我需要实现一种事件类型,它应该包含对其他事件的引用。但我还需要确保指向的事件仍然是可收集的,因此我需要弱引用。 假设我们有事件 A、B 和 C。我将这些
我现在正在学习 boehm gc c++ 接口(interface)。不使用它,只是好奇。我按照官方的例子,写我的类什么可以被 GC,在析构函数中,有一个输出,所以我可以判断一个实例是否被 GC。但只
我在 Android x86 上的 Boehm 中遇到奇怪的崩溃(但 arm 工作正常);它正在崩溃: deferred = *(word *)limit; 与: LogCat: I/DEBUG (
我在以下环境中开发了一个应用程序(在我的错误中重命名为 MyApplication 以保护隐私): 单点触控 2.1 MonoDevelop 2.4.2 MacOS 10.6.8 iOS SDK 4.
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
Boost.Coroutine 分配自己的调用堆栈。 Boehm GC 是否将这些堆栈上的指针视为根,如果不是,我如何才能做到这一点?在上下文切换到协程后,Boehm 终止程序。 最佳答案 推测 Bo
我已经开始在我正在制作的库中使用引用计数。这是一个相当不错的解决方案,递增和递减不会像某些人错误地认为的那样浪费很多资源。此外,用于引用计数的少量额外内存可以忽略不计。 但显然跟踪垃圾收集非常好,它比
据我所知,asprintf 调用 malloc。如果我用 Boehm GC 替换 malloc,对 asprintf 的调用仍然调用传统的 malloc - 至少 valgrind 是这样告诉我的:
这段代码导致了我的内存泄漏,我不确定为什么。 [编辑] 包含来自 here 的代码质疑: #include "src/base.cpp" typedef std::map, gc_allocato
我有一个使用 Boehm GC 的项目,所以我想我可能会使用它自带的 cord 字符串库。问题是我对 cord 函数的所有调用都会导致“ undefined reference ”错误。 我在 /us
我是一名优秀的程序员,十分优秀!