Rust 编译后的二进制文件,比 C++还大,这······
在 9 月 27 日直播的【开源漫谈】第 14 期节目中,开源中国 OSChina 邀请到了马全一、冯洋以及张汉东三位 Rust 专家就“快十年了,Rust 怎么还没有取代 C++”这一话题展开讨论。 直播期间,有网友指出,使用Rust编译生成的二进制文件,在端侧设备(比如嵌入式设备、物联网设备等)上比使用C++编译生成的二进制文件要大很多。这在那些内存和存储空间资源受限的端侧设备上尤其需要注意。 对于这一问题,三位 Rust 专家给出了自己的看法。 冯洋:关于端侧设备上Rust编译文件大小的问题,我的理解如下。 首先,我们要弄清楚为什么Rust编译后的二进制文件会比较大。 目前,有多组人员正在努力解决这个问题,至少有三伙人在进行相关工作。我个人也尝试分析过Rust的二进制文件,发现除了可以移除的调试信息和头部数据之外,其他部分很难进一步压缩。特别是链接(linkage)相关的部分,如果不改变现有的编译系统,这些是无法删除的。 接下来,关于资源消耗的问题,我们可以将其分为计算资源和空间资源两个方面。对于空间资源,我之前已经解释过,很难进一步减小文件大小,这需要Rust社区共同努力来解决...
