3

VC++を介してIntelのコンパイラでコンパイルされたアプリケーションのプロファイルを作成する必要があります。VTuneを使用してコードのプロファイルを作成しています。

私の理解では、リリースモードでは、プロファイラーがデバッグモードでコードをプロファイリングするために必要なデバッグ情報がないため、プロファイリングの結果は適切ではありません。

私は何をすべきか ?リリースモードでデバッグ情報を追加することは可能ですか?このモードを設定するにはどうすればよいですか?

もしそうなら、私はまだすべての最適化(インライン化など)の恩恵を受けますか?

4

3 に答える 3

4

最適化を有効にしてプロファイルを作成する必要があります(コンパイラオプション/ O3)。/ Ziは、デバッグ情報を有効にするためのIntelコンパイラスイッチ(Windowsの場合)です。

最適化のため、インライン化のために一部の関数がデバッグ情報から欠落している可能性がありますが、VTuneはそれに対処します。

于 2009-05-05T10:25:12.430 に答える
3

リリースターゲットでもプログラムデータベースファイル(PDB)を生成することができます。プロジェクトのプロパティ、リンカー/デバッグに移動し、[プログラムデータベースファイルの生成]オプションをオンにします。通常は「$(TargetDir)$(TargetName).pdb」のようなものです。さて、それはVTuneがPDBファイルを解釈する方法を知っているかどうかに依存します...

于 2009-05-05T10:53:34.953 に答える
1

関数のインライン化とプロセス間の最適化により、プロファイルの解釈が困難になります。そのため、デバッグモードとリリースモードの両方でプロファイリングすることをお勧めします。リリースモードでプログラム時間の80%を使用している関数fooのみが表示される場合は、デバッグプロファイルを使用して、fooにインライン化された関数バーがfooの時間の60%を使用していることを確認できます。

于 2009-05-05T14:36:41.110 に答える