【问题标题】:Will debug symbols affect the performance in Rust?调试符号会影响 Rust 的性能吗?
【发布时间】:2020-07-20 15:11:04
【问题描述】:

我正在运行使用调试符号编译的 Rust 实用程序。

cargo build 
# without the "--release" flag   

与用 C 编写的相同实用程序相比,它们确实很慢。

调试符号是否可能影响性能?

【问题讨论】:

标签: performance rust debug-symbols


【解决方案1】:

回答您的问题

使用调试符号编译通常会使您的二进制文件在 Linux 和类 UNIX 平台上变得更大。这可能意味着您需要从磁盘加载更多数据,这会影响性能。实际上不应该有任何运行时差异。

您可以将调试信息拆分为单独的文件,以避免增加二进制文件的大小。 Windows 默认使用 PDB 文件执行此操作,macOS 默认使用 dSYM 文件执行此操作。

另见:

解决您的问题

如果你不使用--release 编译,你的代码会变慢。如果要判断性能,请使用 --release 编译。

在调试模式和发布模式之间切换可以改变的不仅仅是调试符号。优化级别是一个例子,溢出检查是另一个例子。据我所知,除了查看 Cargo 和 Rust 源代码之外,没有完整的更改列表。

另见:

【讨论】:

  • 有趣的是,调试和发布版本之间的区别不仅仅是添加了调试符号。大多数优化不是在调试版本中执行的(因为它们会影响该版本在实际调试中的可用性)。
  • 您可以在此处找到配置文件之间差异的完整 (?) 列表:doc.rust-lang.org/cargo/reference/profiles.html。其他更改包括禁用调试断言和禁用增量编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2021-04-29
  • 2012-02-04
  • 2011-01-28
相关资源
最近更新 更多