- 716 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 19:06:35.31 ID:Lu9RYSaI.net]
- VC++のPGOビルドについてどなたかお詳しい方いませぬか?
PGOビルドのためのテスト実行を毎回行いたくありません。 テスト実行して収集したpgcファイルまたはそれをマージしたpgdファイルを使いまわすことはできないのでしょうか? ttps://msdn.microsoft.com/ja-jp/library/ms235569.aspx PGO Manager は、古いプロファイル データでは使用できません。 .pgc ファイルを .pgd ファイルにマージするには、その .pgc ファイルが、.pgd ファイルを生成したのと同じリンク呼び出しで作成された実行可能ファイルによって生成される必要があります。 とあります。 確かに、古いpgcをバックアップしておき、意図的にそれを配置してビルドしてみると以下のように怒られました。 PGOMGR : 警告 PG1052: インストルメンテーション データ ファイル '....MFCApplication1\Release\MFCApplication1!1.pgc' は異なるプロファイル データベースに属しています。 なのでpgcだけ退避しておいて再利用するというのは難しそうですね。 ということでマージ済みpgdを再利用する方向を考えます。 最適化設定のビルド構成をリビルドしようとするとpgdファイルが無いので怒られます。 そこで クリーン → 予め退避しておいたマージ済みpgdを配置 → ビルド とやってみたところ、問題なくリンクされました。 これは危険なお作法でしょうか? バイナリ内のクラスや関数設計が変わったりしたとき、pgdが古いことによる弊害が起こりうるんでしょうか? 或いは、そもそも思想が間違ってますでしょうか? (PGOビルドのためには毎回テスト実行が必要という考え方が一般的?) ソリューション構成を以下の2つに分けてGUIから検証しています。 ・テスト実行用ビルド(pgd付き) ・pgcとpgdに基づいた最適化ビルド よろしくお願いします。
|

|