2012-02-16 7 views
1

今日、私はMinGWを更新し、現在のC++プロジェクトを再構築しました。 4.5.0を使用してからタイミング情報を記録しました。バージョン4.6.2でコンパイルすると、パフォーマンスが大幅に低下します(約4倍遅くなります)。4.5.0から4.6.2への更新後のMinGW g ++のパフォーマンス低下

私のビルドコマンド:

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 

私はウィンドウ64ビットシステム上でのMinGWを実行していますよ。

悪い結果を引き起こす原因は何ですか?

私のbinフォルダにはmingw32-gcc-4.5.0というファイルが含まれています。 MinGW 4.6 release notes pageには、古いバージョンでコンパイルするために使用できることが記載されています。残念なことにg ++のバイナリはありません。 gccもC++をコンパイルできると読んだけど、私の場合はうまくいきません。ちょっとしたエラーが出ます。 gccを使ってC++プログラムをコンパイルする方法を人々が尋ねたサイトでg ++を使うヒントが見つかりました。

mingw32-gcc-4.5.0を使ってコンパイルしたC++プログラムを入手する方法はありますか?そうでない場合は、バージョン4.5.0を使用して別のコンパイル方法がありますか? 悪い性能が私のコードの変更によって引き起こされていないことを保証したいと思います。

編集

私は昨日の状態に私のコードとビルドバッチファイルを元に戻し、2010年にダウンロードした私の古いMinGWのインストーラを実行して、もう一度4.5.0をインストールするために管理。それでもパフォーマンスは悪いです。 MinGWはインストールディレクトリの外にDLLやその他の関連ファイルをインストールしていますか?

+2

もう古いバージョンの上に0.1.2の余分があります。 – Dennis

+0

パフォーマンス低下の理由を特定することができれば、他の人(あなた自身と同様)に役立つかもしれません。 –

答えて

0

リブートが解決策でした。 4.5.0と4.6.2の両方のバージョンで再び動作します。 4.6.2でコンパイルされたbinarayはさらに優れた性能を発揮します。

私のプログラムのパフォーマンスは、MinGWをアップデートする前は常に安定していたので、私のシステムに問題があるとは考えられませんでした。

しかし、これは私たちの心が働く方法です:同時に2つの関連することが起こった場合、最初のものが第2のものを引き起こすと考える。イリュージョニストはその事実を利用しています:P

2

MinGWはインストールディレクトリの外にDLLまたはその他の関連ファイルをインストールしていますか?

私はこれがあなたの状況に適用されるかどうかわからないんだけど、私は、現在実行中のMinGWのは、別の場所からであっても、MinGWの一部のバージョンでは、ファイル/プログラム/ DLLを\MinGWになりますことを聞いたことがあります。

この現象が発生する可能性のあるバージョンはわかりませんが、マシンにMinGWツールチェーンがインストールされている場合にのみ、MinGWインストールに\MinGWを使用することをお勧めします。


the source of this adviceが見つかりました:

はTDM-GCCをインストールしないと、 "C:MinGWの\"!

以前は、MinGWをインストールするための推奨パス「 」が「C:\ MinGW」でした。他のバージョンのGCCではヘッダーのパスが検索され、そこにインストールされていない場合でも ライブラリが検索されるため、これはもはやケースではなくなりました( )。 TDM-GCCはこの問題を修正するために パッチが適用されていますが、他のほとんどのMinGW/GCCディストリビューション は持っていません。つまり、 MinGWまたはMinGW-w64がインストールされている場合は、常に "C:¥MinGW"のヘッダーとライブラリが検索され、間違ったヘッダーと ライブラリが誤って使用されることになります。したがって、インストール時に別のパスを とすることをお勧めします。

+1

+1、それは同じ問題を抱えている他の開発者にとっては役に立ちます。しかし、私はC:\ MinGWにインストールしなかった – fishbone

関連する問題