Rust 编译器有分析选项吗?
Does the Rust compiler have a profiling option?
我有一个 Rust 程序 运行 没有我想象的那么快。有没有办法告诉编译器检测二进制文件以生成分析信息?
我的意思是 GCC 的 -p
和 -pg
选项或 GHC 的 -prof
.
据我所知,没有直接切换。但是,我已经成功地编译了启用优化 以及 调试符号的代码。然后我可以使用 OS X's Instruments 来分析代码。其他人在 Linux 系统上使用 KCachegrind 达到了同样的效果。
编译器不支持任何形式的专门用于分析的工具(如-p
/-pg
/-prof
),但编译的 Rust 程序可以在工具下进行分析不需要自定义检测,例如 OS X 上的 Instruments,以及 Linux.
上的 perf 或 callgrind
我相信此类工具支持使用 DWARF 调试信息(由 -g
发出)来提供更详细的性能诊断(每行等),但启用优化会对调试信息造成严重破坏,而且永远不会真的对我有用。当我分析性能时,深入研究 asm 是很常见的。
让它变得更容易真的很好,而且工具绝对是 post-1.0 priority。
我有一个 Rust 程序 运行 没有我想象的那么快。有没有办法告诉编译器检测二进制文件以生成分析信息?
我的意思是 GCC 的 -p
和 -pg
选项或 GHC 的 -prof
.
据我所知,没有直接切换。但是,我已经成功地编译了启用优化 以及 调试符号的代码。然后我可以使用 OS X's Instruments 来分析代码。其他人在 Linux 系统上使用 KCachegrind 达到了同样的效果。
编译器不支持任何形式的专门用于分析的工具(如-p
/-pg
/-prof
),但编译的 Rust 程序可以在工具下进行分析不需要自定义检测,例如 OS X 上的 Instruments,以及 Linux.
我相信此类工具支持使用 DWARF 调试信息(由 -g
发出)来提供更详细的性能诊断(每行等),但启用优化会对调试信息造成严重破坏,而且永远不会真的对我有用。当我分析性能时,深入研究 asm 是很常见的。
让它变得更容易真的很好,而且工具绝对是 post-1.0 priority。