独立运行多个线程中的Boehm GC

 傻瑶叫一下来人fd_478 发布于 2023-02-06 16:13

我正在尝试将一些绑定写入Boehm GC for Rust.

一些背景:Rust被设计为高并发语言,这种设计的结果是能够将GC指针静态地限制在分配它们的线程内(也就是说,在线程x中分配的GC指针可以永远不会被另一个线程保持活着(甚至完全被引用).

因此,我希望驾驶Boehm尽可能地利用它来获得性能:

    线程安全,所以我可以从多个线程分配和收集

    尽可能小的集合(即只是当前的线程),其他线程可以继续运行,因为它们不可能干扰与自己之外的GC指针相关的任何事情

    优选地,完全线程本地,不同线程的GC"实例"之间没有同步

1很简单,但我找不到2和3的任何工具.最重要的部分是1和2因为我希望能够在后台运行线程,而不管其他线程在做什么(即使它们都是分配和垃圾收集千兆字节的内存).

(我确实知道THREAD_LOCAL_ALLOC&gc_thread_local.h,但是这并不完全满足3,它只是使它更有效,但它仍然有效传递线程之间本地线程分配的指针,而我不需要保证.)

1 个回答
  • 我对Boehm如何做到这一点没有答案.但是,这里有两个GC,它们似乎有足够的控制和封装,每个线程都有一个完全独立的GC上下文.

    Lua的垃圾收集器 - 麻省理工学院

    Steve Dekorte的libgarbagecollector - BSD

    2023-02-06 16:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有