2011-01-29 11 views
0

おはようございます。私はコンパイラとしてmingwを使用していると思うideとして流血devC++を使用しています。私は、コードとボトルネックの最適化について話している記事をたくさん読んでいて、私は彼らの推奨するテクニックを試してみたいと思っています:))。したがって、質問は次のとおりです。どのように私のプログラムの速度を知るには、コードのどの部分がボトルネックですか?

  1. 私のコードがどの程度効率的に実行されているか、どれくらい悪いことが測定されていますか?
  2. どのように私は「ボトルネック」(私は用語の権利を使用しています?)

おかげである私のコードの一部を知っています!

答えて

1

プロファイラを使用して、コードのどの部分が最も時間を費やしているかを確認できます。

あなたのコードが全体的に効率的かどうかは分かりません。試してみて、完了時間を同様のアプリケーションと比較してください。必要なパフォーマンスを定義し、しきい値を下回るようにコードを最適化する必要があります。

+0

返信いただきありがとうございます。それは別のプログラムですか、それともdevC++パッケージの一部ですか? – user571099

+0

@ user571099:dev-C++にプロファイラが付属しているのかどうか分かりませんが、とにかくそこにたくさんのプロファイラがあります(別々のプログラムとして):[this post](http://stackoverflow.com/questions/4394606/beyond) -stack-sampling-c-profilers)例えば – peoro

+1

もしあなたのコードが他のシステムでコンパイルされていて、そこにアクセスできるならば、 'oprofile'を使ったLinuxの方が良い結果をもたらすかもしれません。 'gprof'は最小限しか使用できませんが、余分なプロファイリングコードをコードに挿入するため、プロファイリングオーバーヘッドが追加されるとボトルネックのように見えることなく通常は速い小さな関数を簡単に作成できます。 'oprofile'は、命令ポインタをサンプリングするだけで、この種の観測干渉を回避します。残念ながら、Windows用の同等のプロファイリングツールはわかりません。 –

2

プロファイラを使用できます。 MinGWコンパイラを使用しているので、gprofを使用してください。

+0

ありがとうございます。このプロファイラにはプログラムの実行時間を測定する機能がありますか? – user571099

+0

これは、プロファイラの定義とほぼ同じです。 ;) –

0

gprof for mingを試しましたか?

+0

まだありません。それを見てください。再度、感謝します – user571099

関連する問題