Build Cache - 効率の監視と診断
現在、この機能は、Incredibuild のEnterprise、および、Business Plans でのみ利用可能で、限定的に提供されています。詳しくは、カスタマーサクセスマネージャーにご相談ください。
Build Cacheの効果を監視する
Build Cacheを使用することでどれだけ時間が短縮されたか、についての詳細は、すべてのビルドの出力に含まれます。これは、Build Monitor のサマリー タブや、コマンドラインで表示される出力で確認できます。
注意: 提出されたファイルおよび復元されたファイルのサイズは、元のファイルと若干異なる場合があり、Incredibuild がファイルに追加するメタデータの関係で、互いに異なる場合があります。
キャッシュヒット率は、Build MonitorのProgress Displayの表示でも確認できます。
-
キャッシュのタスク は実行済みタスクで、今後のビルド向けのビルドキャッシュに追加する候補となるタスクです。
-
ヒットしたキャッシュ は、実行されずに Build Cache から取得されたタスクです。
キャッシュ効率をさらに検証する
ヒット率が低い場合は、各タスクに関する情報を含むように出力を強化することで、その原因を調べることがで可能です。[Agent Settings] >[Initiator] >[Build Cache Client Settings]二アクセスし 、[Include more details in build output]を[on] に変更します。
これには時間がかかり、ビルドが遅くなる可能性があることに注意してください。40,000タスクなどの極端なケースでは、予想されるビルド時間を15分も超えてしまう可能性もあります。
別のビルドを実行し、Build MonitorのBuild Cacheタブを確認します。Build Monitorは、各タスクに関する広範な情報を含む詳細なBuild Cache ヒット/ミスのレポートが含まれ、ヒットしたかミスしたか、キャッシュミスの場合はミスの理由が盛り込まれています。
ビルド内の全タスクがレポートに表示されます。タスクを展開すると、そのタスクに関する正確な情報と、Build Cacheがどのようにそのタスクを処理できたかを表示できます。
各タスクのキャッシュ動作は、"Cache "で始まる行に表示されます。値は以下のいずれかになります。
-
HIT-RESTORED
このタスクはキャッシュ内で検出され、タスクの内容を取得したので、タスクを再実行する必要がなくなりました。「Original exec time(元の実行時間)」の行は、タスクに元々かかった時間を示しています。これはBuild Cacheを使うことで節約できた時間です。
-
HIT-LICENSE-TEMPORARILY-DEPLETED
このタスクはキャッシュで検出されましたが、検索されずに再実行されました。これは、Cache Coreライセンスを使い切った為で、次回のリセットまで待機しています。これは、Cache Coresライセンスが現在のBuild Cacheアクティビティの負荷に耐えられないことを示しています。
-
非対応ツール
Build Cacheが該当するツールをサポートしていないため、タスクが実行されました。
-
使用不可ツール
Build Cacheが該当するツールをサポートしているにもかかわらず、コンフィギュレーションで無効化しているため、タスクが実行されました。場合によっては、このツールを有効化して、ビルドのヒット率を向上させることも可能です。
-
SKIP-MANAGED-C++
Build CacheがサポートしていないマネージドC++コードをコンパイルするため、コンパイル タスクを実行しました。
-
MISS-DATA-DELETED
キャッシュされたアイテムが空になったため、タスクを実行しました。重複した項目を取り除くため、キャッシュ コンテンツは定期的に自動的に削除されます。キャッシュの容量が更に大きい場合、ビルドのヒット率が向上し、該当するアイテムを検出及び取得する可能性があります。
-
MISS-NEW-SOURCE-FILE
ソース ファイルが一度もコンパイルされたことがないため、タスクを実行しました。注意:空の(コールド)キャッシュで最初のビルドを行った場合、すべてのタスクがこのキャッシュ動作を示すと予想されます。
-
MISS-EXISTING-SOURCE-FILE
タスクは以前に実行され、キャッシュに保存されたが、今回のビルドではキャッシュされたアイテムはどれも使用できません。
この場合、レポートには(以前のビルドから)関連するキャッシュ項目と、INPUT-FILES(ソースまたはヘッダーの不一致)、TOOL-VERSION(コンパイラーまたはツールチェーンの不一致)、COMMAND-OPTIONS(コマンドラインの不一致)、ENV-VARS(環境変数の不一致)などの、キャッシュ項目を使用できない理由が表として含まれます。