5

私が現在取り組んでいるレガシー アプリは、ビルドに約 2 時間かかります。このプロジェクトには約 170 のプロジェクトがあり、そのうち 150 ほどがアンマネージ C++ で、残りの 30 が C#.Net 2.0 です。

このようなもののビルド時間を改善する方法についての提案は何ですか?

4

5 に答える 5

8

C++ プロジェクトに注目してください。ビルドに最も時間がかかることはほぼ確実です。

C++ のビルド時間を短縮するためのヒント:

  • C++ プロジェクトで必要なヘッダーのみを含めていることを確認してください。
  • 他のヘッダーを含める代わりに、可能な限りヘッダーで前方宣言を使用します
  • 可能であれば、/MP スイッチを使用して並行してビルドします
  • 抽象化を効果的に使用する
  • コンパイル時にコストがかかるため、インライン関数の使用は控えてください。
  • 依存関係を正しく取得して、必要以上に頻繁にビルドしないようにする
  • プリコンパイル済みヘッダーを適切に使用する

それとは別に、2 時間のビルド時間について話している場合、多くの場合、単純で安価な (全体像として) ソリューションもあります。

  • ハードウェアをアップグレードして計算時間を短縮する
于 2009-07-29T19:05:29.857 に答える
4

ビルドが必要なすべてのマシンにIncrediBuildをインストールすると、すべてのマシンにビルド プロセスが分散されます。本当に問題にハードウェアを投入したい場合は、IncrediBuild クライアントとしてのみ機能するいくつかの専用マシンをセットアップできます。

別のスケールでは、すべてのプロジェクトにプリコンパイル済みヘッダーが正しく構成されていることを確認してください。

于 2009-07-29T19:28:48.163 に答える
2

lintなどのツールを使用して、C++ プロジェクトに冗長なインクルード ファイルがあるかどうかを確認できます。

Games from Withinにも、このテーマに関する優れた記事があります。

于 2009-07-29T19:54:44.857 に答える
2

分散ビルド システム Incredibuild を試すことができます: http://www.xoreax.com/visual_studio.htm

于 2009-07-29T19:04:57.020 に答える
0

プロジェクトの関連するサブセットのみを含むプロジェクトの複数のソリューションを作成し、リリースなどのために 1 つのスーパー ソリューションを残します。

于 2009-07-29T19:16:51.217 に答える