Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个「;“优化调试体验”;Rust中的编译器标志? 在C++中,您有使用“-Og”或“/OG”(以及其他编译器上的其他标志)来启用“优化调试体验”的编译标志。_Rust_Rust Cargo - Fatal编程技术网

是否有一个「;“优化调试体验”;Rust中的编译器标志? 在C++中,您有使用“-Og”或“/OG”(以及其他编译器上的其他标志)来启用“优化调试体验”的编译标志。

是否有一个「;“优化调试体验”;Rust中的编译器标志? 在C++中,您有使用“-Og”或“/OG”(以及其他编译器上的其他标志)来启用“优化调试体验”的编译标志。,rust,rust-cargo,Rust,Rust Cargo,此标志支持不干扰调试体验的非常基本的优化(据我所知)。但这确实意味着编译器所做的琐碎或“免费”优化可以为程序启用,这样您就不必担心了 从中,“优化调试体验”是: 优化调试体验-Og应该是 选择标准的编辑编译调试周期,提供 合理的优化级别,同时保持快速编译 并且有很好的调试经验。这是一个比-O0更好的选择 生成可调试代码,因为某些编译器传递 调试信息在-O0处被禁用 我想知道是否有一个地方可以实现同样的好处,或者是否有任何这样的选择计划。理想情况下,可以通过货物和尽可能跨平台的方式实现 请注意,我

此标志支持不干扰调试体验的非常基本的优化(据我所知)。但这确实意味着编译器所做的琐碎或“免费”优化可以为程序启用,这样您就不必担心了

从中,“优化调试体验”是:

优化调试体验-Og应该是 选择标准的编辑编译调试周期,提供 合理的优化级别,同时保持快速编译 并且有很好的调试经验。这是一个比-O0更好的选择 生成可调试代码,因为某些编译器传递 调试信息在-O0处被禁用

我想知道是否有一个地方可以实现同样的好处,或者是否有任何这样的选择计划。理想情况下,可以通过货物和尽可能跨平台的方式实现

请注意,我并不是在询问“opt levels”,它相当于“-O1,-02等”。

在中,您将看到默认编译配置文件,命名为,如下所示:

[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
lto = false
panic = 'unwind'
incremental = true
codegen-units = 256
rpath = false
由于
debug=true
意味着存储了完整的调试信息,这意味着项目的编译对象已经准备好进行调试,尽管没有进行优化。目前,Cargo和rustc都没有“优化调试体验”的标志。虽然我们可以确保保留调试符号,但与GCC所述的“某些过程中的调试信息在
-O0
中丢失”不同,应用优化并仍然拥有良好的调试体验是一种折衷游戏:特别是,LLVM提供了一些保证,但是在调试模式下导航和处理属性的能力可能会受到影响()

如果我们理解了“改进调试体验”的真正含义,那么这可以通过调整编译配置文件,在个案的基础上完成。例如,实时程序开发(如视频游戏开发)中的一个常见要求是应用一些代码优化,以便运行时性能可以承受。看看这方面可以做些什么。每个
opt级别
都会以自己的方式为体验做出贡献

另见:

在中,您将看到指定的默认编译配置文件名为:

[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
lto = false
panic = 'unwind'
incremental = true
codegen-units = 256
rpath = false
由于
debug=true
意味着存储了完整的调试信息,这意味着项目的编译对象已经准备好进行调试,尽管没有进行优化。目前,Cargo和rustc都没有“优化调试体验”的标志。虽然我们可以确保保留调试符号,但与GCC所述的“某些过程中的调试信息在
-O0
中丢失”不同,应用优化并仍然拥有良好的调试体验是一种折衷游戏:特别是,LLVM提供了一些保证,但是在调试模式下导航和处理属性的能力可能会受到影响()

如果我们理解了“改进调试体验”的真正含义,那么这可以通过调整编译配置文件,在个案的基础上完成。例如,实时程序开发(如视频游戏开发)中的一个常见要求是应用一些代码优化,以便运行时性能可以承受。看看这方面可以做些什么。每个
opt级别
都会以自己的方式为体验做出贡献

另见:


如果默认情况下还没有完成,那会做什么?@mcarton我相信默认情况下,编译器不会在开发配置文件中默认进行优化。C++中的标志允许在不干扰调试的情况下启用非常基本的优化。默认情况下,这将不会做什么?@ McCton,我相信默认情况下编译器不会在DEV配置文件中默认优化。C++中的标志允许在不干扰调试的情况下启用非常基本的优化。谢谢您的回答,但它没有回答我的问题。我知道默认情况下存储的调试信息,但我在问是否有优化标志,以便在开发人员配置文件中获得更好的体验。@ShadowMitia我已更新了答案。简短的回答是“不是真的”,虽然有一些参数可以尝试和实验。谢谢你的回答,但它没有回答我的问题。我知道默认情况下存储的调试信息,但我在问是否有优化标志,以便在开发人员配置文件中获得更好的体验。@ShadowMitia我已更新了答案。简短的回答是“不是真的”,尽管有一些参数可以尝试和实验。