【Rust日报】2024-05-28 Wasmi 的新的超快的执行引擎
内容提要
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。