如何给 Rust 编译提速?需要数据分析的帮助!
作者 Nethercote 之前尝试通过对并行后端进行修改来加速 Rust 编译器,但大部分尝试都未能成功。 文章中提到,Rust 后端会将生成的 MIR 代码分割成代码生成单元(CGUs),然后使用 LLVM 生成机器代码。 他所尝试的 CGU 分割算法,试图将代码均匀地分割成 CGUs,但估计 LLVM 编译每个 CGU 所需的时间是困难的。当前的估计函数经常会低估或高估,这可能会影响编译时间。
作者希望通过数据分析技术来改进这个估计函数,他自己也做了一些简单的尝试,不过没有得出什么有价值的结论,因此希望有专业知识的人能够帮助。
希望更多的人可以参与到 Rust 编译器的优化工作中来,为 Rust 社区做出贡献。
Rust-Traverse:一个功能丰富的终端文件管理器
Rust-Traverse
是一个基于终端的文件管理器,主要受到 NNN 这个项目的启发。
Rust-Traverse
使用了 Ratatui
构建终端的图形界面, 同时将 Crossterm
作为终端的后端。
目前,其不仅支持完整的增删改查等基本的功能,还有模糊搜索,书签,文件预览等实用的特性,可配置化和极快的运行速度也是其卖点之一。
从错误中学习 Unsafe Rust
Rust 是一种注重安全性的编程语言,但在某些情况下,开发人员可能需要使用 unsafe
关键字来执行某些操作。unsafe
可以提供更高的性能,但可能会牺牲安全性。因此,开发人员在使用时需要非常小心。
Geo Ant 列举了几个使用 unsafe
的常见场景,如访问裸指针、调用外部C函数等,并提供了一些建议和最佳实践,以确保在使用 unsafe
时不会引入潜在的安全隐患。
他希望通过这篇文章,能够帮助Rust开发人员更好地理解 unsafe
关键字的使用场景和潜在风险。
-- From 日报小组 RustPlumber
社区学习交流平台订阅:
评论区
写评论还没有评论