Win32应用程序(VS2010)运行速度比Eclipse中的控制台慢得多(c ++)

时间:2011-08-22 11:11:21

标签: c++ eclipse visual-studio-2010 optimization compiler-construction

我有一个我在Eclipse c ++中创建的项目。该项目调用一个函数,该函数执行大量循环(数千个)来计算结果。

当我在Eclipse中运行它需要1分钟(约70秒)。

我想为项目添加一个GUI,所以我在VisualStudio2010中打开了一个WinForm(Win32)项目,并将项目的所有文件从eclipse目录移动到新目录(为VS2010创建)。

现在,当我运行表单时,该函数需要4-5分钟。我试图取消进度条,但这不是问题,所以我明白很长一段时间不是因为GUI。

我认为问题出在VS2010的编译中。我试图更改一些优化属性,但无法编译项目......

如何缩短运行时间?

谢谢!

2 个答案:

答案 0 :(得分:0)

基本上你回答了自己的问题:

  

我认为问题出在VS2010的编译中。我试图改变   一些优化属性,但项目无法编译......

然而,很难回答它,因为在两个编译器中都有很多优化选项,很难说哪个选项使它更快/更慢。它也可能(并且很可能是)MS编译器不能生成与Eclipse编译器完全相同或相似的代码。

您的选择是“玩”VS编译器的优化开关,看看它是否有帮助。您可以尝试将它的选项与Eclipse的选项进行比较以找出差异,但很可能它们会有太大不同。

正如@Zuljin正确提到的还要检查你选择的Win32项目,而不是CLR(Windows Forms)应用程序。如果您正在使用CLR项目,那么它很可能比Native程序类型运行得慢。

答案 1 :(得分:0)

我的赌注是VS2010中的调试器

使用优化设置进行构建,然后从资源管理器启动生成的文件,而不是从Visual Studio启动。您也可以在项目设置中停用调试器附件。

查看运行时间是否有所不同。