如何优化原生和 WASM 工具链的可执行二进制文件的大小?

wan*_*len 4 rust

我是 Rust 的新手,到目前为止我对它的设计感到惊讶。但我遇到了一些让我不敢在商业项目中使用它的事情。“Hello world”应用程序的可执行二进制文件的大小为 3.2Mb。

-rwxr-xr-x 2 kos kos 3,2M Jul 10 15:44 experiment_app_size
Run Code Online (Sandbox Code Playgroud)

那是巨大的!

  • 的版本rustc1.53.0
  • 工具链是stable-x86_64-unknown-linux-gnu.
  • 目标是release.

我想知道将来是否计划解决这个问题?有没有一种技术可以用来减小可执行二进制文件的大小?同样的问题与 WASM 工具链相关吗?

wan*_*len 7

默认情况下,Rust 优化执行速度而不是二进制大小,因为对于绝大多数应用程序来说这是理想的。但对于开发人员想要优化二进制大小的情况,Rust 提供了实现此目的的机制。

上述大多数技术都适用于本机和 WASM 工具链。按照该指南,可以获得大约 93k 的“hello world”二进制文件。

这是一篇关于如何优化 Rust WASM 构建的二进制文件大小的专门的广泛文章。

这里是 Rust 官方论坛上关于开发人员必须按大小优化二进制选项的利弊的深入讨论。