【Rust日报】2024-05-28 Wasmi 的新的超快的执行引擎

💡 原文中文,约1700字,阅读约需4分钟。
📝

内容提要

Wasmi发布了新的快速执行引擎,性能提升了5倍。Wasmi和Wasm3由于其惰性编译特性表现最佳。Rust用户发现在抽象程度过高时定位和理解原始类型不方便。IDE可以通过显示已实现的功能和紧凑的功能信息来提供帮助。RustRover和VS Code + Rust Analyzer在改善编码体验方面取得了进展。Rust实现了一个轻量级的DNS服务器,名为dnrs。

🔎

延伸解读

Wasmi 性能提升的背景与适用场景

Wasmi v0.32 通过基于寄存器的字节码将执行性能提升多达 5 倍,并借助惰性编译等技术大幅改善启动性能。基准测试显示,Wasmi 和 Wasm3 因惰性编译在启动速度上表现最佳,而基于 JIT 的 Wasmtime、Wasmer 以及单通道 JIT 如 Winch、Wasmer Singlepass 则较慢。这表明 Wasmi 特别适合嵌入式环境、插件系统和智能合约等对启动速度敏感的场景。

Rust 类型抽象带来的可读性挑战

文章指出,Rust 标准库中许多方法返回具体类型而非抽象特征,例如 chars() 返回 Chars<'_>,这使签名不够直观。作者认为若返回 impl Iterator<Item=char> 会更具自文档性。这反映了 Rust 在灵活类型系统与代码可读性之间的权衡,开发者需更多依赖文档和 IDE 来理解类型行为。

IDE 在改善 Rust 编码体验中的角色

面对类型抽象和宏展开带来的理解负担,作者建议 IDE 提供显示类型已实现特征、紧凑特征信息以及宏生成类型等功能。RustRover 和 VS Code + Rust Analyzer 已取得进展,但仍处于起步阶段。这些工具的发展有望显著降低 Rust 的学习曲线和日常开发中的认知成本。

❓

Q&A

Wasmi的新执行引擎有什么性能提升?

Wasmi的新执行引擎性能提升了5倍。

Wasmi和Wasm3的表现如何?

Wasmi和Wasm3由于惰性编译特性表现最佳。

Rust用户在使用时遇到了什么问题?

Rust用户发现类型过于抽象,原始类型难以理解。

IDE如何改善Rust的编码体验?

IDE可以通过显示已实现的功能和紧凑的功能信息来改善编码体验。

RustRover和VS Code + Rust Analyzer有什么进展?

RustRover和VS Code + Rust Analyzer在改善编码体验方面取得了进展。

Rust实现了什么样的DNS服务器?

Rust实现了一个轻量级的DNS服务器,名为dnrs。

🏷️

标签

➡️

继续阅读