news 2026/7/25 18:04:58

2026 年 Wasmtime 47 版本发布:默认开启垃圾回收与异常处理,多方面优化值得期待!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026 年 Wasmtime 47 版本发布:默认开启垃圾回收与异常处理,多方面优化值得期待!

Wasmtime 47 版本发布:默认开启垃圾回收与异常处理,多方面优化值得期待!

2026 年 7 月 20 日,Nick Fitzgerald 发布消息,在 [Wasmtime 47 版本](https://github.com/bytecodealliance/wasmtime/releases/tag/v47.0.0) 中,WebAssembly 垃圾回收(Wasm GC)和异常处理提案默认开启,助力更多语言在 WebAssembly 及 Wasmtime 运行环境中使用,这是 Wasmtime 重大变革与多年工程努力的成果。

Wasmtime

[Wasmtime](https://wasmtime.dev/) 是一款具备快速、安全和可移植特点的 WebAssembly 运行时,能独立运行、轻量级且易于嵌入。其维护者致力于开放标准,积极参与 WebAssembly 标准化工作。

Wasm GC

WebAssembly 早期版本中,采用对象和引用数据模型的高级语言需嵌入自身垃圾回收器,导致 `.wasm` 二进制文件臃肿,且部分常用技术无法使用。[Wasm GC](https://github.com/WebAssembly/gc) 提案改善了这一状况,为 WebAssembly 增加对高级语言的高效支持,扩展语言让 Wasm 程序可定义类型及子类型关系,运行时处理生命周期管理和释放,工具链可利用运行时垃圾回收器,为更多语言以 WebAssembly 为目标打开大门。例如展示了 Wasm 程序定义[二叉树的节点类型](https://github.com/bytecodealliance/sightglass/blob/98ff8a598b4b4f6eab0d8f391118411990efde96/benchmarks/splay/splay.wat#L15-L22),新实例通过 [`struct.new $node`](https://github.com/bytecodealliance/sightglass/blob/98ff8a598b4b4f6eab0d8f391118411990efde96/benchmarks/splay/splay.wat#L310) 创建,字段通过指令访问。

Wasm 异常处理

Wasm 的[异常处理提案](https://github.com/WebAssembly/exception-handling)为 WebAssembly 上的异常处理提供高效支持,使 WebAssembly 更适合有异常处理机制的语言编译。若无此提案,工具链需实现自定义调用约定,增加 `.wasm` 文件大小和运行时开销。有了该提案,采用 `throw` 和 `try`/`catch` 风格结构,运行时用栈展开方法,正常返回路径无开销,实现更快执行速度和更小文件。

Wasmtime 的垃圾回收实现

Wasmtime 采用 [Cheney 式半空间复制垃圾回收器](https://en.wikipedia.org/wiki/Cheney%27s_algorithm),垃圾回收堆分“活动”和“空闲”半空间,回收时存活对象复制到新活动空间,更新垃圾回收根指向。分配操作简单移动指针,无需读写屏障。底层复用 WebAssembly 线性内存实现和沙箱化垃圾回收堆,引用为 32 位索引,在安全、速度和可移植性方面有好处。为增强对垃圾回收器正确性的信心,扩展模糊测试基础设施,扩展 [`wasm-smith`](https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasm-smith) 支持 GC 提案,补充两个模糊测试器。目前工程工作主要集中在正确性,性能关注少,与 [V8](https://v8.dev/) 和 [SpiderMonkey](https://spidermonkey.dev/) 中的垃圾回收器相比,吞吐量和延迟表现不佳,主要针对生产环境常见用例设计。

下一步计划

还有大量[性能优化工作](https://github.com/bytecodealliance/wasmtime/issues?q=is%3Aissue%20state%3Aopen%20gc%20label%3Awasm-proposal%3Agc%20label%3Aperformance)要做,如扩展编译器别名分析优化并加入 GC 类型信息。功能上,下一个重要里程碑是在[惰性值降低](https://github.com/WebAssembly/component-model/issues/383)基础上,对[垃圾回收与组件模型的集成](https://github.com/WebAssembly/component-model/issues/525)进行原型设计。

总结

很高兴达到这一里程碑,欢迎试用 [Wasmtime](https://wasmtime.dev/) 新启用的垃圾回收和异常处理支持,并分享使用体验。

1. 注意,GC 提案已合并到 WebAssembly 主规范中,因此提案页面现在是特定时间点的存档快照。 ↩

2. 与 GC 提案一样,异常处理提案也已合并到 WebAssembly 主规范中,提案仓库现在是一个存档的历史快照。 ↩

3. 在撰写本文时,`wasm-smith` 在 Wasm GC 方面唯一的不足是它永远不会生成非空引用。 ↩

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 18:04:51

GPT-5.6 Sol Pro突破AI语言理解:从讽刺识别到内容安全实战

那天下午,我正和一位做内容安全审核的朋友聊天,他提到一个头疼的问题:如何让 AI 识别出那些看似礼貌、实则充满讽刺的“高级黑”评论。这类内容往往用词文雅,但潜藏的恶意比直接辱骂更难捕捉。就在我们讨论时,我看到了…

作者头像 李华
网站建设 2026/7/25 17:59:43

pdfh5.js移动端PDF渲染引擎架构深度解析

pdfh5.js移动端PDF渲染引擎架构深度解析 【免费下载链接】pdfh5 项目地址: https://gitcode.com/gh_mirrors/pdf/pdfh5 在现代Web应用生态中,PDF文档的移动端渲染一直是一个技术挑战。传统的PDF.js虽然功能强大,但在移动设备上的手势交互和渲染性…

作者头像 李华
网站建设 2026/7/25 17:55:46

抖音批量下载工具:高效管理你的抖音内容收藏

抖音批量下载工具:高效管理你的抖音内容收藏 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…

作者头像 李华
网站建设 2026/7/25 17:54:19

AtomGit——面向AI时代的开源基础设施平台

1. 引言:AI时代呼唤新的开源基础设施随着人工智能技术的飞速发展,AI模型训练、推理和应用开发对代码、数据和协作工具提出了前所未有的要求。传统的开源托管平台(如GitHub、GitLab)在应对大规模AI项目、海量数据处理、模型版本管理…

作者头像 李华
网站建设 2026/7/25 17:50:53

AI情感陪伴系统评估框架设计与实践

1. 项目背景与核心挑战 去年参与某心理健康类APP的第三方测评时,发现市面上90%的产品都在主打"AI情感陪伴"功能。但实际测试中,这些对话系统要么机械复读心灵鸡汤,要么在用户表达极端情绪时给出危险回应。这促使我们团队开发了一套…

作者头像 李华
网站建设 2026/7/25 17:48:18

深度学习反向传播与计算图原理详解:从链式法则到PyTorch实现

计算图与反向传播是深度学习的核心引擎,它决定了模型如何从数据中学习。很多人调用 model.backward() 时,可能并不清楚梯度是如何从输出层一步步“流”回输入层的。这篇文章将彻底拆解这个过程,让你不仅理解原理,还能在代码层面亲手验证每一步的梯度计算。 我们将从一个…

作者头像 李华