LazowskiAnton · Extensions

BuildSmith

ビルドが何をして、なぜその時間がかかったのか。ビルドのたびに、ステータス バーにその時間と前回との差が表示されます。ビルド タイムライン ウィンドウには、すべてのプロジェクトがタイムライン上に並びます — どれが並列に実行され、どれが待たされ、合計時間を決めたクリティカル パスはどれか。

無料 · Visual Studio 2022 と 2026 · UI は 14 言語 · テレメトリなし

BuildSmith を選ぶ理由

ビルド タイムライン ウィンドウ: ビルド結果と前回のビルドに対する時間、開始順に並んだプロジェクトごとのバー、オレンジ色の枠で示されたクリティカル パス

時間はどこに消えたのか

出力ウィンドウからわかるのは、ビルドに 1 分 48 秒かかったということだけです。タイムラインなら、どのプロジェクトが時間を使ったのか、どれが並行して実行されたのか、ビルド全体がどのプロジェクトの連鎖を待っていたのかがわかります。

同じ条件のビルドと比較

main 上の Debug ビルドは、main 上の前回の Debug ビルドと比較されます — リビルドや Release ビルド、別のブランチとは比較しません。だから ▲ 4.1 秒には意味があります。

控えめ

勝手に開くウィンドウもポップアップもありません。ビルド後にステータス バーに 1 行表示されるだけです。記録をオフにすると、BuildSmith は本当に休止し、ビルド イベントすら受け取りません。

無料、条件なし

サブスクリプションも「Pro」版もデータ収集もなく、出力ウィンドウや起動時のメッセージもありません。履歴はお使いのコンピューターに保存されます。唯一お願いするのは、しばらくお使いいただいた後に、Marketplace での評価です。Visual Studio 2022 と 2026、x64 と ARM64 で動作します。

機能

ビルドを一目で

ビルド › ビルド タイムライン を開きます (表示 › その他のウィンドウ と SmithWorks ツール バーにもあります)。ウィンドウには最後のビルド — または履歴の任意のビルド — が表示され、上部に概要、その下にプロジェクトごとのバーが並びます。

ビルド タイムライン ウィンドウ: 結果・時間・差を示すヘッダー、その下にタイムライン上のプロジェクト、枠で示されたクリティカル パス、斜線の最新プロジェクトとツールチップ

ステータス バーの時間

ビルドのたびに、Visual Studio のステータス バーにその時間と前回の比較可能なビルドとの差が表示されます: ⏱ 1 min 48 s (▲ 4.1 s) — ▲ は遅くなった、▼ は速くなったことを示します。BuildSmith が自分から表示するのはこれだけで、設定でオフにできます。

比較可能とは、ビルドの種類 (ビルドまたはリビルド)、構成、プラットフォーム、Git ブランチがすべて同じであることを意味します。そのようなビルドがまだなければ、時間だけが表示されます。

ヘッダー

ウィンドウの上部には、表示中のビルドの概要が表示されます:

表示内容意味
✓ 1 分 48 秒  前回比 ▲ 4.1 秒結果 (成功または失敗)、合計時間、そして前回の比較可能なビルドとの差を示すバッジ。バッジのツールチップには、そのビルドにかかった時間と日時が表示されます。
14 プロジェクト · ビルド 9 · 最新 5 · 失敗 1参加したプロジェクトの数、実際にビルドされた数、最新のためスキップされた数、失敗した数。
クリティカル パス 1 分 31 秒 · Debug · Any CPU · mainクリティカル パスの長さ、続いてビルドの構成、プラットフォーム、Git ブランチ。
ビルドの選択ソリューションの記録済みのビルドならどれでも選べ、タイムラインがそのビルドに切り替わります。
🏷 ⏻ ⚙🏷 で表示中のビルドにラベルを付け、⏻ で記録のオン/オフを切り替え、⚙ で設定を開きます。

バー

表示内容意味
青いバービルドされたプロジェクトです。開始順にプロジェクトごとに 1 行ずつ並びます。バーはビルド開始後にプロジェクトが実際に始まった位置から始まり、かかった時間の長さを持ちます。重なっているバーは並列に実行されたもので、ビルドが実際にどれだけ並列だったかがわかります。
オレンジ色の枠クリティカル パス: それぞれが前のプロジェクトを待つ、合計時間を決めたプロジェクトの連鎖です。このどれかを速くすればビルドが速くなります。他のプロジェクトは並行して実行されていました。
斜線の短いバー最新: 何も変更されていないためスキップされました。
赤いバープロジェクトのビルドに失敗しました。
▲ 2.4 秒各バーの横: その時間と、目立つ場合は、前回の比較可能なビルドでの同じプロジェクトとの差。

バーにマウスを合わせると詳細が表示されます: プロジェクトにかかった時間、ビルド開始から何秒後に始まり何秒後に終わったか、前回のビルドとの差、クリティカル パス上にあったかどうか。

ウィンドウは作業中も開いたままにしておけます。新しいビルドのたびに自動で切り替わります。上部に タイムライン、比較、履歴 タブがあります。

最新にならないプロジェクト

何も変更されていなくても、ビルドのたびにビルドされるプロジェクトがあります。毎回数秒かかりますが、誰も気づきません。BuildSmith は気づきます: インクリメンタル ビルドのタイムラインの上に帯が表示され、そのようなプロジェクトの数と 1 回のビルドあたりのコストが示されます。帯を展開するとプロジェクトの一覧が表示され、タイムライン上の該当する行には ⟳ マークが付きます。

タイムラインの上の帯: 「3 個のプロジェクトが最新になりません — ビルドごとに 6.4 秒」。プロジェクトの一覧とよくある原因

ルール: 同じ構成とブランチの直近 3~5 回のインクリメンタル ビルドのすべてでビルドされ、そのときソリューションの半分以上が最新だったプロジェクトが指摘されます。リビルドは数えません — リビルドではすべてが意図的にビルドされるためです。

よくある原因:

これを直せば、ビルドのたびにその時間を節約できます。帯は設定の 最新にならないプロジェクトを示す でオフにできます。

履歴

履歴 タブには、ソリューションの記録済みのビルドが新しい順に日ごとにまとめて表示されます。各行には時刻、ビルドの種類、構成とブランチ、ラベル、そしてビルド時間に比例したバーが表示されるので、遅いビルドがすぐに目に留まります。

履歴タブ: 検索ボックス、期間、チェックされたビルド、ラベル、ビルド時間に比例したバー、右クリック メニュー

ビルドを探す

検索ボックスに入力します — すべての語がラベル、ブランチ、構成、ビルドの種類のいずれかに含まれている必要があります。今日、昨日と今日、7 日間、すべて で期間を絞り込むか、カレンダーで日付を選びます (日付…)。ラベル付きのみ にすると、ラベルを付けたビルドだけが残ります。

開く、ラベル付け、保持、削除

ビルドをクリックする (または Enter キーを押す) と、タイムラインで開きます。右クリックすると タイムラインで開く、ラベル…、保持 (削除しない)、削除 が表示されます。Delete キーでビルドを削除でき、数秒間は 元に戻す が使えます。⋯ メニューでは、指定した日付より古いビルドの削除、このソリューションまたはすべてのソリューションの履歴の消去ができます。

ビルドにチェックを付けると、比較したり、まとめて削除したりできます。ラベル付きを選択 は、表示中のビルドのうちラベルのあるものすべてにチェックを付けます — 「修正前」と「修正後」を比較する最速の方法です。

ビルドの保持期間

ビルドはこのコンピューターの %LocalAppData%\BuildSmith にのみ、ソリューションごとに 1 つの履歴として保存されます — 保持期間は 1 日、3 日、1 週間 (既定)、2 週間、1 か月から選べます。古いビルドは、ソリューションを開いたときやビルドが終わったときに削除されます。ラベル付きと保持指定のビルドは、どれだけ古くても残ります。

ラベル

ヘッダーの 🏷 (または履歴メニューの ラベル…) で、ビルドに短いテキストと色を付けます: 5 色のいずれか、またはパレットと最近使った色を備えた小さなピッカーで選ぶ任意の色です。最近使ったラベルはワンクリックで再利用できるので、一連のビルドに同じラベルを付けられます。

ラベル付きのビルドは、古くなっても削除されません (ラベル付きのビルドを保持する をオフにしない限り)。保持 (削除しない) は、ラベルなしでビルドを固定します。

記録

ヘッダーの ⏻ で、ビルドを記録するかどうかを選びます:

選択肢動作
ビルドを記録既定: すべてのビルドの時間を計測し、履歴に保存します。
このソリューションでは記録しないこのソリューションは記録されなくなりますが、他のソリューションは引き続き記録されます。そのようなソリューションは設定に一覧表示され、記録を再開 を選べます。
すべてで無効BuildSmith はすべてのソリューションで休止します。

休止中の BuildSmith は本当に何もしません: ビルド イベントを購読せず、ステータス バーにもディスクにも何も書き込みません。履歴は残り、ウィンドウには ビルドの記録を再開 が表示されます。

ビルドの比較

比較 タブでは、ビルドを並べて比べられます: 修正は効いたのか、更新後にどのプロジェクトが遅くなったのか、1 週間でビルド時間がどう推移したのか。

比較タブ: ビルドのチップ、ビルド時間の推移、色付きの差・スパークライン・クリティカル パスを含むプロジェクト × ビルドの表

ビルドを選ぶ

履歴 で 2~10 個のビルドにチェックを付け、⇄ N 件を比較 を押します。チェックがなければ、表示中のビルドを前回の比較可能なビルドと比較します。ビルドは上部にチップとして表示され、✕ で比較から外せます。

推移と表

小さなグラフに各ビルドの合計時間が表示されます。その下にプロジェクト × ビルドの表があります: 各セルは最初のビルドとの差で色分けされ — 暖色ほど遅く、緑は速い — スパークライン、差、そしてプロジェクトがクリティカル パス上にあった場合は ● が表示されます。大きな変化のないプロジェクトは … 大きな変化のないその他 N 件 にまとめられます。

関心のあるプロジェクトだけ

プロジェクト: … で表を絞り込みます: すべてのプロジェクト (N)、大きく変化 (N)、クリティカル パス上 (N)、チェックしたもののみ。検索ボックスもあります。フィルターはソリューションごとに記憶され、推移は絞り込んだプロジェクトの時間の合計になります — ソリューション全体ではなく、あなたのプロジェクトの推移です。

1 つのプロジェクトをビルド間で

プロジェクトをクリックすると、比較中のすべてのビルドでのそのバーが表示されます。枠付きのバーは、そのビルドでクリティカル パス上にあったことを示します。‹ すべてのプロジェクト で戻ります。

Markdown としてコピー

⧉ コピー は、表示どおりの表 — 同じビルド、同じフィルター — を Markdown の表としてクリップボードに置きます。プル リクエストやチャットにそのまま使えます。1 プロジェクト表示では、そのプロジェクトをコピーします。

設定

ツール › オプション › SmithWorks › BuildSmith (またはビルド タイムライン ウィンドウの ⚙)。各オプションに、何をするかの短い説明があります。

オプション既定値
ビルドを記録するオン
記録しないソリューション:無効にしたソリューションはありません。
ビルドの保持期間:1 週間
ラベル付きのビルドを保持するオン
ステータス バーに時間を表示オン
最新にならないプロジェクトを示すオン
Marketplace での評価をお願いするオン

すべての履歴を消去 (N 個のソリューション、サイズ)… は、すべてのソリューションの記録済みのビルドを削除します。その際、ラベル付きと保持指定のビルドを残すかどうかを確認します。下部には 既定値に戻す、ドキュメント、Marketplace で評価、フィードバックの送信 があります。

設定と履歴は %LocalAppData%\BuildSmith に保存されます。

BuildSmith のオプション ページ
オプション ページ。

よくある質問

BuildSmith は何かデータを送信しますか?

いいえ。ビルド時間は Visual Studio のビルド イベントから取得され、お使いのコンピューターの %LocalAppData%\BuildSmith に保存されます。ネットワーク通信もテレメトリもありません。

時間の横に差が表示されないのはなぜですか?

比較可能なビルド — 種類 (ビルドまたはリビルド)、構成、プラットフォーム、ブランチが同じもの — がまだないためです。もう一度ビルドすると差が表示されます。

クリティカル パスとは正確には何ですか?

ビルドが待たなければならなかったプロジェクトの連鎖です。それぞれ前のプロジェクトが終わってから始まりました。その長さは、コア数に関係なく、これらのプロジェクトでビルドが取りうる最短時間です。クリティカル パス外のプロジェクトを速くしても、ビルドは短くなりません。

ビルド後もウィンドウが空のままです。

記録がオンになっていること (ウィンドウの ⏻、設定の ビルドを記録する) と、このソリューションが 記録しないソリューション の一覧に入っていないことを確認してください。Visual Studio の外で開始したビルド (コマンド ラインでの dotnet build) は記録されません。

BuildSmith でビルドが遅くなりますか?

いいえ。Visual Studio がもともと通知している各プロジェクトの開始と終了を受け取り、ビルド後に小さなファイルを 1 つ書き込むだけです。ビルドやそのログ出力は変更しません。

履歴はどのくらいディスク容量を使いますか?

ごくわずかです。1 回のビルドは、プロジェクトとその時間の短い一覧にすぎません。設定の すべての履歴を消去 の横にサイズが表示され、古いビルドは選んだ期間が過ぎると自動で削除されます。

問題の報告や機能の提案はどこでできますか?

GitHub の Feedback リポジトリで Issue を作成してください。バグとアイデア用のフォームがあります (非公開の名前は変更してください)。Marketplace の Q&A タブもご利用いただけます。

変更履歴

1.0.0