加速 Rust 的编辑-构建-运行周期

2024-11-14

本文探讨如何加快Rust开发周期中的warm build时间。作者首先介绍了基准测试环境和初始构建时间,然后逐步讲解了优化方法:使用更快的链接器(如Mold),避免链接调试信息,构建不可重定位的可执行文件。最终,warm build时间实现了16倍的提升,从20秒缩短至1.2秒。文章还分析了剩余时间的消耗,并提出了未来改进方向,包括修改默认设置、增量链接以及开发名为“wild”的增量链接器。

阅读更多
未分类 构建速度

Rust dylib 深入探究

2024-08-28

本文探讨了Rust编译器在使用动态链接生成共享对象文件时,关于符号可见性和重定位的处理方式。作者发现,默认情况下,Rust编译器会将大量符号导出,并使用GLOB_DAT重定位,这会影响共享对象的加载时间和运行时性能。作者建议将符号可见性设置为protected,以减少GLOB_DAT重定位的数量,并提高性能。同时,作者还分析了GCC和Clang在处理符号可见性方面的差异,以及GNU ld和LLD在链接时的行为差异,并提出了改进建议。

阅读更多
未分类 动态链接