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