インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
profmerge ツールを使用して、動的プロファイル情報 (.dyn) ファイルや指定されたサマリーファイル (.dpi) をマージします。[Q]prof-use オプションを使用すると、コンパイラーは、フィードバック・コンパイル・フェーズで profmerge を自動的に実行します。
profmerge をコマンドラインで使用するには、次のように指定します。
構文 |
---|
profmerge [-prof_dir dir_name] |
ツールにより、現在のディレクトリー、または -prof-dir で指定されたディレクトリー内のすべての .dyn ファイルがマージされ、サマリーファイル pgopti.dpi が生成されます。
ツールオプションの表記は、コンパイラー・オプションとは若干異なります。コンパイラー・オプションでは単語をつなぐのにハイフン (例: [Q]prof-dir) が使用されますが、ツールオプションでは、下線 (例: -prof_dir) が使用されます。また、Windows* システムの場合、フォワードスラッシュ ("/") が前に付加される Windows* コンパイラー・オプションとは異なり、ツールオプションの前にはハイフン ("-") が付加されます。
profmerge ツールを使用すると、アプリケーションをコンパイルせずに、.dyn ファイルを .dpi ファイルにマージできます。複数のシステムでインストルメント済み実行ファイルを実行して .dyn ファイルを生成し、-prof_dpi オプションで profmerge を使用して、複数の .dyn ファイルから作成されたそれぞれの .dpi サマリーファイルに名前を付けることができます。
profmerge ツールは指定されたディレクトリーに存在するすべての .dyn ファイルをマージするため、無関係な .dyn ファイルがないことを確認してください。無関係な .dyn ファイルがあると、プロファイル情報に無効なプロファイル・データが含まれ、最適化されたコードのパフォーマンスに悪影響を与えることがあります。
profmerge オプション
profmerge ツールは、以下のオプションをサポートしています。
ツールオプション |
説明 |
---|---|
-dump |
プロファイル情報を表示します。 |
-help |
サポートされているオプションをリストします。 |
-nologo |
バージョン情報を抑止します。このオプションは、Windows* でのみサポートされています。 |
-exclude_filesfiles |
リストされているファイルに含まれる関数をプロファイルから除外します。リスト項目はカンマ (",") で区切られていなければなりません。関数名でワイルドカード文字としてピリオド (".") を使用できます。 |
-exclude_funcsfunctions |
プロファイルから関数を除外します。リスト項目はカンマ (",") で区切られていなければなりません。関数名でワイルドカード文字としてピリオド (".") を使用できます。 |
-prof_dirdir |
.dyn ファイルと .dpi ファイルを読み取ったり、.dpi ファイルを書き出すディレクトリーを指定します。また、PROF_DIR 環境変数を設定できます。 |
-prof_dpifile |
生成する .dpi ファイルの名前を指定します。 |
-prof_filefile |
ファイル一致から情報をマージします: dpi_file_and_dyn_tag |
-src_olddir-src_newdir |
.dpi ファイル内に格納されているディレクトリー・パスを変更します。 |
-no_src_dir |
dyn/dpi レコードからの読み取り時に、ディレクトリー名ではなく、ファイル名のみを使用します。-no_src_dir を指定した場合、どのプロファイル・データが特定のアプリケーション・ルーチンに対応するかを判断する際に、ソースファイルのディレクトリー名は無視されます。また、-src-root オプションも無視されます。 |
-src-rootdir |
ユーザー・アプリケーション・ファイルが格納されるルート・ディレクトリーのディレクトリー・パス・プリフィクスを指定します。このオプションは、-no_src_dir を指定した場合は、無視されます。 |
-afile1.dpi...fileN.dpi |
利用可能な .dpi ファイルを指定し、マージします。 |
-verbose |
マージ中のすべての情報を表示します。 |
-weighted |
データカウントを正規化するために、ツールに .dpi ファイルの値 (実行時間にかかわらず) と等しいウェイトを適用するように指示します。このキーワードは、実行時間の長さが異なってもそれらを等しく扱う場合に役立ちます。 |
-gen_weight_spec file |
デフォルトウェイトが 1/run_count でマージされた .dyn ファイルおよび .dpi ファイルのリストを含むテキストファイルを生成するようツールに指示します。 テキストファイルは prof_dir オプションで指定されたディレクトリーに作成されます。 |
-weight_spec weight_spec.txt |
テキストファイル weight_spec.txt を生成し、使用するよう profmerge ツールに指示します。ファイルには各 .dyn/.dpi ファイルまたはディレクトリー名がウェイト値とともにリストされます。 -weight_spec オプションが使用されると、次の操作が行われます。
prof_dir オプションは入力/出力 weight_spec.txt の位置と .dpi ファイルのデスティネーションを制御します。 -weight_spec オプションは次を無効にします。
|
実行のウェイト
-weight_spec オプションを使用すると、新しい .dpi ファイルが作成されます。テキストファイルにリストされたファイルのみがマージされます。テキストファイルに含まれていない限り、現在のディレクトリーのファイルは使用されません。
profmerge によるソースファイルの再配置
インテル® C++ コンパイラーは、各ルーチンのソースファイルのフルパスを使用して、そのルーチンに関連するプロファイル・サマリー情報を検索します。デフォルトでは次のことができません。
アプリケーションのソースを移動して、プロファイル・サマリー・ファイル (.dpi) を使用する。
異なるディレクトリーにある同一アプリケーションのソースをビルドする別のユーザーとプロファイル・サマリー・ファイルを共有する。
profmerge オプションの -no_src_dir を指定して .dyn/.dpi ファイルレコードを読み取る際に、ディレクトリー名の使用を無効にします。この profmerge オプションは、コンパイラー・オプションの -no-prof-src-dir (Linux* および macOS*) と /Qprof-src-dir- (Windows*) と同じです。
プロファイル・サマリー・ファイルの共有とアプリケーション・ソースの移動を行うには、profmerge オプションの -src-root を使用して、ディレクトリー・パス・プリフィクスをアプリケーション・ファイルが格納されているルート・ディレクトリーに指定します。また、オプションペア -src_old-src_new を指定して、既存の dpi サマリーファイルのデータを変更できます。次に例を示します。
コマンド構文の再配置の例 |
---|
profmerge -prof_dir <dir1> -src_old <dir2> -src_new <dir3> |
<dir1> は動的情報ファイル (.dpi) へのフルパス、<dir2> はソースファイルへの古いフルパス、<dir3> はソースファイルへの新しいフルパスです。上記のコマンド例は、<dir1> で指定されたディレクトリーにある pgopti.dpi ファイルを読み取ります。ソースパスが <dir2> プリフィクスで始まる pgopti.dpi ファイルにある各関数は、profmerge により、<dir3> プリフィクスに置換されます。pgopti.dpi ファイルは、新規のソースパス情報で更新されます。
profmerge は、pgopti.dpi ファイルに対して何度でも実行できます。これは、複数のディレクトリーにソースファイルがある場合に有効です。
オペレーティング・システム |
コマンド例 |
---|---|
Linux* および macOS* |
profmerge -prof_dir -src_old /src/prog_1 -src_new /src/prog_2 profmerge -prof_dir -src_old /proj_1 -src_new /proj_2 |
Windows* |
profmerge -src_old "c:/program files" -src_new "e:/program files" profmerge -src_old c:/proj/application -src_new d:/app |
Windows* では、-src_old と -src_new で指定される値は、大文字と小文字が区別されません。同様に、フォワードスラッシュ (/) とバックスラッシュ (\) は、同じ文字と見なされます。
profmerge のソースの再配置機能は、pgopti.dpi ファイルを変更するため、ソースの再配置を行う前に、必要に応じて、ファイルのバックアップをとってください。
proforder ツールはフィードバック・コンパイル・フェーズの一部として使用されます。これによってプログラムのパフォーマンスが上がります。Windows* では、proforder ツールにより /ORDER リンカーオプションで使用する関数順序リストを生成できます。ツールの構文は、次のとおりです。
構文 |
---|
proforder [-prof_dir dir] [-o file] |
dir はプロファイル・ファイル (.dpi および .spi) を含むディレクトリーで、file は関数順序リストファイルのオプション名です。デフォルト名は、proford.txt です。
ツールオプションの表記は、コンパイラー・オプションとは若干異なります。コンパイラー・オプションでは単語をつなぐのにハイフン (例: [Q]prof-dir) が使用されますが、ツールオプションでは、下線 (例: -prof_dir) が使用されます。また、Windows* システムの場合、フォワードスラッシュ ("/") が前に付加される Windows* コンパイラー・オプションとは異なり、ツールオプションの前にはハイフン ("-") が付加されます。
proforder オプション
proforder ツールは、以下のオプションをサポートしています。
ツールオプション |
デフォルト |
説明 |
---|---|---|
-help |
サポートされているオプションをリストします。 |
|
-nologo |
バージョン情報を抑止します。このオプションは、Windows* でのみサポートされています。 |
|
-omit_static |
関数の順序配置からスタティック関数を省略します。 |
|
-prof_dirdir |
.spi ファイルおよび .dpi ファイルが存在するディレクトリーを指定します。 |
|
-prof_dpifile |
.dpi ファイルの名前を指定します。 |
|
-prof_filestring |
文字列 (string) で渡された値と一致する部分文字列 (substring) 値を含む .dpi および .spi ファイルを選択します。 |
|
-prof_spifile |
.spi ファイルの名前を指定します。 |
|
-ofile |
proford.txt |
出力ファイルの代替名を指定します。 |