百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

gc-arena

> 编程语言
开源

从安全 Rust 中进行增量垃圾回收

870 stars0 点赞2 次浏览
访问官网GitHub

工具介绍

从安全 Rust 中进行增量垃圾回收

gc-arena 这个仓库是 gc-arena 编译单元的所在地,它为 Rust 提供了垃圾收集的区域以及安全地与它们交互的方法。 gc-arena 编译单元以及其辅助编译单元 gc-arena-derive 为封闭的"区域"内提供了安全、增量、精确、循环检测的垃圾收集分配。 这些垃圾收集的区域通过以下三种主要技术来实现安全性: 1) 使用 Collect 特性来实现精确跟踪。 此特性是不安全的,如果实现不正确,可能会导致 UB,但该特性可以通过 proc-macro 进行安全地派生。

  1. 指针上标有唯一的生成 'gc' 生命周期,确保它们无法逃脱变异回调或被分配到错误的区域。

基本上是可用且安全的!它由 Adobe Flash Player 模拟器 Ruffle 使用其 ActionScript VM 以及我自己开发的 GameMaker 兼容编译器/VM fabricator 使用,后者用于游戏 Fields of Mistria。集合使用一种增量标记和扫除算法,与 PUC-Rio Lua 中的算法非常相似,并且主要针对低暂停时间进行优化。在变异过程中,分配"债务"会累积,而这个"债务"决定了下一次调用 Arena::collect 将执行的工作量。

在 arena 中保存的指针是围绕 *const T 实现 Copy 的零成本新类型。在变异期间移动或复制 Gc 时,根本不需要任何指针记账。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言