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

问题描述 投票:0回答:2

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

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

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

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

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

如何减少运行时间?

c++ eclipse visual-studio-2010 optimization
2个回答
0
投票

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

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

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

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

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


0
投票

我的赌注是VS2010中的调试器

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

看看运行时间是否有什么不同。

© www.soinside.com 2019 - 2024. All rights reserved.