我有一个在 Eclipse C++ 中创建的项目。该项目调用一个执行大量循环(数千次)的函数来计算结果。
当我在 Eclipse 中运行它时,需要 1 分钟(约 70 秒)。
我想给项目添加一个GUI,所以我在VisualStudio2010中打开了一个WinForm(Win32)项目,并将项目的所有文件从eclipse目录移动到新目录(为VS2010创建)。
现在,当我运行表单时,该函数需要 4-5 分钟。我尝试取消进度条,但这不是问题,所以我明白长时间不是因为 GUI 的原因。
我认为问题出在VS2010的编译上。我尝试更改一些优化属性,但项目无法编译...
如何减少运行时间?
基本上你回答了你自己的问题:
我认为问题出在VS2010的编译上。我尝试改变 一些优化属性,但项目无法编译...
但是,很难回答这个问题,因为两个编译器都有很多优化选项,很难说哪个选项使它更快/更慢。也有可能(而且很可能是)MS 编译器无法生成与 Eclipse 编译器完全相同或相似的代码。
您的选择是“玩”VS 编译器的优化开关,看看它是否有帮助。您可以尝试将它的选项与 Eclipse 的选项进行比较以找出差异,但很可能它们的差异太大。
正如 @Zuljin 正确提到的那样,还检查您选择的 Win32 项目,而不是 CLR(Windows 窗体)应用程序。如果您使用的是 CLR 项目,那么很自然它可能会比 Native 程序类型运行得慢。
我的赌注是VS2010中的调试器
使用优化的设置进行构建,然后从资源管理器而不是 Visual Studio 启动生成的文件。您还可以在项目设置中停用调试器附件。
看看运行时间是否有什么不同。