gpt4 book ai didi

c++ - VS2008 C++ Release模式比 Debug模式慢

转载 作者:行者123 更新时间:2023-11-28 08:26:56 25 4
gpt4 key购买 nike

我正在使用混合的 native 和托管 Visual C++,在 native 中使用 STL。我有一个奇怪的问题。似乎当我在 Release模式下编译我的软件并设置了所有优化时,我的软件始终比在 Debug模式下运行得慢。这里可能出了什么问题?

这些是我的调试命令行选项:

/Od/D "WIN32"/D "_D​​EBUG"/D "_UNICODE"/D "UNICODE"/FD/EHa/MDd/Fo"Debug\"/Fd"Debug\vc90.pdb"/W3/nologo/c/Zi/clr/TP/errorReport:prompt/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2. 0.50727\System.Data.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.XML.dll"

这些是我的 Release 命令行选项:

/Oi/Ot/Oy/GT/GL/D "WIN32"/D "_SECURE_SCL=0"/D "_HAS_ITERATOR_DEBUGGING=0"/D "VC_EXTRALEAN"/D "_UNICODE"/D "UNICODE"/FD/EHa/MD/Fo"Release\"/Fd"Release\vc90.pdb"/W3/nologo/c/clr/TP/errorReport:prompt/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing. dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"/FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.XML. dll”

最佳答案

这完全不可能从命令行开关进行诊断,您必须使用分析器。

不过,有一件事是相关的,那就是您使用了/clr 选项。除非您在代码中明确使用#pragma managed,否则所有内容都将转换为 IL,甚至是 STL 模板代码。这意味着您的优化设置没有任何效果,因为它们仅适用于生成的机器代码。然后,您将受制于 JIT 编译器为优化所做的工作。例如,当您附加了调试器时,默认情况下它不会优化。

关于c++ - VS2008 C++ Release模式比 Debug模式慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com