C++ MinGW g++;从4.5.0更新到4.6.2后的性能损失

C++ MinGW g++;从4.5.0更新到4.6.2后的性能损失,c++,windows,performance,mingw,C++,Windows,Performance,Mingw,今天我更新了MinGW并重建了我当前的C++项目。自从使用4.5.0以来,我已经记录了计时信息,在使用4.6.2版编译时,我看到了巨大的性能损失(大约慢4倍) 我的生成命令: g++ -Ilib\svl-1.5\include -Ilib\SDL-1.2.15\include -static-libgcc -static-libstdc++ \ -Ofast -O3 -oecl.exe src\ecl.cpp -lmingw32 -lSDLmain -lSDL -std=c++0x 我正在Wi

今天我更新了MinGW并重建了我当前的C++项目。自从使用4.5.0以来,我已经记录了计时信息,在使用4.6.2版编译时,我看到了巨大的性能损失(大约慢4倍)

我的生成命令:

g++ -Ilib\svl-1.5\include -Ilib\SDL-1.2.15\include -static-libgcc -static-libstdc++ \
-Ofast -O3 -oecl.exe src\ecl.cpp -lmingw32 -lSDLmain -lSDL -std=c++0x
我正在Windows 64位系统上运行MinGW

你知道是什么导致了这种糟糕的表现吗

我的bin文件夹包含一个名为
mingw32-gcc-4.5.0
的文件。报告说,它可以用来编译旧版本。不幸的是,g++没有这样的二进制代码。我读到GCC也能够编译C++,但在我的例子中它不起作用,我只得到了大量的错误。我只在使用GC+.P>的人问如何编译C++程序的网站上找到了使用G++的提示。 < >有没有办法让我的C++程序使用<代码>明文32-GCC-4.5.0编译?如果没有,是否有其他方法使用版本4.5.0进行编译? 我希望确保糟糕的性能不是由代码中的更改引起的

编辑

通过运行2010年下载的旧MinGW安装程序,我成功地再次安装了4.5.0。我将代码和生成批处理文件恢复到昨天的状态。表现仍然很差。MinGW是否在安装目录之外安装DLL或其他相关文件

MinGW是否在安装目录之外安装DLL或其他相关文件

我不确定这是否适用于您的情况,但我听说某些版本的MinGW将在
\MinGW
中查找文件/程序/dll,即使当前运行的MinGW来自不同的位置

我不确定这种行为可能适用于哪个版本,但我建议您使用
\MinGW
进行MinGW安装,前提是它是机器上安装的唯一MinGW工具链


发现:

请勿将TDM-GCC安装到“C:\MinGW”

以前,推荐的路径是 在“C:\MinGW”上安装MinGW。现在已经不是这样了-- 因为其他版本的GCC会在该路径中搜索头和 库,即使它们没有安装在那里。TDM-GCC已经过测试 已修补以修复此问题,但大多数其他MinGW/GCC发行版 没有。这意味着,如果您有更多的 MinGW或MinGW-w64,它将始终在中搜索标题和库 “C:\MinGW”,您可能会使用错误的标题和 不经意间。因此,现在建议您使用 不同的安装路径


重新启动是解决方案。它同样适用于4.5.0和4.6.2两个版本。现在,使用4.6.2编译的binaray性能更好

在更新MinGW之前,我的程序的性能一直是稳定的,因此我没有想到这是我的系统的问题


但我们的大脑就是这样工作的:如果两件相关的事情同时发生,我们认为第一件事导致了第二件事。魔术师们正在利用这一事实:P

如果你能找出性能下降的原因,可能会对其他人(以及你自己)有所帮助。+1,这将对其他有同样问题的开发人员有用。但是,我没有安装到C:\MinGW