Visual Studio 2015 Part7 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0687デフォルトの名無しさん
2016/12/13(火) 19:06:35.31ID:Lu9RYSaIPGOビルドのためのテスト実行を毎回行いたくありません。
テスト実行して収集した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に基づいた最適化ビルド
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています