我有这样的代码:
void f()
{
//Some function I want to debug
g();
//More code
}
void g()
{
//A very slow function I want to have optimized for performance
//No debugging this code
}
其中f是我要调试的代码中的任何函数,g是计算密集型函数。
当我使用Release配置编译代码时,两段代码都得到了优化,并且都在合理的时间内运行,但是当我使用Debug配置进行编译时,由于编译器没有优化代码以使其无法执行,因此g需要花费很长时间执行保持调试器友好。
我不需要从调试的角度来处理g,也不能将其提取到预编译的模块中(它正在开发中,需要保持最新状态)。它们在不同的文件中定义。
有没有一种方法可以告诉Visual Studio编译g的速度,同时保持使用Debug配置对f进行编译?
您可以f
进入另一个编译单元,例如另一个文件或#pragma optimize
。后者可能是更好的选择,因为与更改特定文件上的编译设置相比,要忘记设置您的设置是更难的,您必须记住要重新设置并重新设置。
或者,您可以仅在调试模式下进行概要分析,然后看看发生了什么。由于VS Premium及更高版本包含了这些工具,这些工具应该不会太难,或者您可以使用第三方工具。进行分析通常可以很好地了解导致任何速度下降的真正原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句