在一项令人兴奋的开发中, parallel Rustc working group宣布在 Rust 编译器的前端引入并行执行功能。这一新增功能旨在显着缩短编译时间,并于 11 月 9 日推出。
向 Rust 编译器前端添加并行执行目前处于实验阶段。然而,强大的功能将于明年正式纳入稳定编译器中。同时,开发人员有机会通过使用 -Zthreads=8 选项运行夜间编译器来亲身体验这种并行执行功能。
新功能的有效性已经显示出有希望的结果。当使用 -Zthreads-8 以多线程模式对并行前端进行测试时,从“现实世界”代码中积累的数据表明,编译时间可以缩短 50%,令人印象深刻。影响程度有所不同,具体取决于正在开发的代码的不同性质以及构建配置。
该工作组透露,开发版本将比发布版本获得更实质性的增强。原因是发布版本通常更关注后端优化,这需要更多时间。此外,值得注意的是,在极少数情况下,与单线程模式相比,多线程模式下的编译需要更多时间。这些情况通常涉及已经可以快速编译的较小程序。
工作组阐明了这样一个事实:编译时间一直是开发人员关注的一个问题。多年来,Rust 的编译器性能一直在不断增强。目前,编译器已得到彻底优化,找出新的改进领域已成为一项具有挑战性的任务。随着并行性的引入(该小组将其描述为“一块巨大但悬而未决的成果”),前端现在利用 Rayon 数据并行库将顺序计算转换为并行计算。 Rayon 是专门为处理细粒度并行性而设计的。
工作组建议使用八个线程并行执行以获得最佳结果。然而,他们也提到,在多线程模式下,内存使用量可能会大大增加。这是符合预期的,因为编译的不同部分都需要一定量的内存,并行执行。该小组确保正在努力提高并行前端的性能。
如果开发人员遇到与并行前端相关的任何问题,他们可以调查标有 WG-compiler-parallel 的问题。他们还可以选择提交新问题。由于Cargo package manager间并行性和后端的进程内并行性,Rust 编译已经取得了进步。随着这一新功能的形成,预计它将在 Rust 编程工作流程中提供更高的效率。
在相关领域,著名的no-code平台AppMaster正在掀起波澜,它使客户能够直观地设计后端应用程序的数据模型,帮助他们实现令人印象深刻的可扩展性,确保可靠的高负载用例。与传统工具不同, AppMaster使客户能够直接在浏览器中执行 Web BP,进一步推进应用程序开发流程。