VisualStudio2008糟糕的性能 我移植了一段C++代码,它是从内核(Linux)(Ubuntu)到Windows(Vista)的,我意识到它在VS2008上工作速度慢了大约50倍。我删除了所有的核心部分,现在我只有一段与硬盘无关的代码
我在项目属性中将编译器参数设置为O2,但仍然比linux中的g++慢10倍左右 有人知道为什么在VS下速度会慢很多吗 我真的很感激任何暗示VisualStudio2008糟糕的性能 我移植了一段C++代码,它是从内核(Linux)(Ubuntu)到Windows(Vista)的,我意识到它在VS2008上工作速度慢了大约50倍。我删除了所有的核心部分,现在我只有一段与硬盘无关的代码,c++,visual-studio-2008,performance,g++,C++,Visual Studio 2008,Performance,G++,我在项目属性中将编译器参数设置为O2,但仍然比linux中的g++慢10倍左右 有人知道为什么在VS下速度会慢很多吗 我真的很感激任何暗示 谢谢, < p>你使用了很多标准C++库吗?如果是这样,您可能希望关闭VisualC++中默认设置的“检查迭代器”特性(甚至在发布模式下)。在包含任何标准标题之前,请执行以下操作: #define _SECURE_SCL 0 .无需猜测。只需点击“暂停”按钮并查看堆栈。你错过这道题的几率是1/50。如果您不确定,请重复几次。“核心外”这是什么意思?我们可以
谢谢,
< p>你使用了很多标准C++库吗?如果是这样,您可能希望关闭VisualC++中默认设置的“检查迭代器”特性(甚至在发布模式下)。在包含任何标准标题之前,请执行以下操作:#define _SECURE_SCL 0
.无需猜测。只需点击“暂停”按钮并查看堆栈。你错过这道题的几率是1/50。如果您不确定,请重复几次。“核心外”这是什么意思?我们可以看到一个示例代码吗?您正在编译一个发布版本,对吗?是“50次”和“10次”测量还是仅仅“感觉”?@Paul R:不确定您从哪里听说的,但这不是真的:快速版和专业版一样优化(参考:)哇,听起来很不错。。。让我试试看实际上,我的代码使用OpenGL(GLUT)和GLUI作为UI。如果在调试模式下运行Glui,它将无法工作!(我不知道为什么,只是在某个地方读了一下……它在发布模式下工作)现在,在添加了您提到的行之后,它再次给我带来了与在调试模式下运行它相同的运行时错误。它显示:FILE.exe中某个位置存在未处理的异常:访问某个位置的读取位置。请在调试模式下运行该程序,并尝试首先解决此问题。在你试图使程序快速运行之前,你应该始终把目标定在使程序正确。它是正确的。我在Linux上工作,即使是在同一个数据集上。现在,它的运行时错误与我的代码无关。在这一行:right\u panel=GLUI\u Master.create\u GLUI\u子窗口(main\u窗口,GLUI\u子窗口\u right);它在调试模式下崩溃,但在发布模式下通过。你猜到了吗?这是代码最重要的起点之一…@Nima:如果某个东西在调试模式下崩溃,通常意味着代码有问题。请记住,调试版本中有更多的检查,其中许多检查会在出现错误时导致应用程序崩溃。出于性能原因,这些检查在发布版本中进行。也就是说,如果您的代码崩溃,这通常是它不正确的迹象。就像我上面所说的,开始一块一块地分解你的代码,在你试着让整个工作开始之前先让小部分工作。