2009-07-29 84 views
5

我在currenty上工作的遺留應用需要花費2個小時才能構建。該項目有大約170個項目,其中150個左右是非託管C++和另外30個C#.Net 2.0。加速構建時間的方法? (C#/ Unmanaged C++)

對於如何改進這種類似的構建時間,有什麼建議?

+1

以前也有過類似的問題。搜索「incredibuild」以查找其中的一些。 – crashmstr 2009-07-29 19:05:44

+0

您是否需要頻繁地從頭開始構建它,還是增量構建緩慢? – 2009-07-29 19:39:27

+0

我們需要經常從頭開始構建。無論什麼時候變更爲QC,我們都需要完整的構建。 – Kyle 2009-07-30 12:10:06

回答

8

專注於C++項目 - 他們幾乎肯定會成爲建規模最大的一次水渠。

上獲得C++編譯時間下來一些提示:

  • 確保你只包括您在C++項目需要的頭!
  • 使用前向聲明在報頭,而不是包括其它標題
  • 儘可能使用/ MP切換到建立並聯,當可能
  • 使用抽象有效
  • 成爲在使用內聯函數備用,因爲這些花費更多在編譯時
  • 獲取依賴正確的,這樣你就不會建造更多的往往是需要適當
  • 使用預編譯頭

除此之外,如果你說2小時生成時間,往往有一個簡單,價格便宜(在一個大圖片的方式)解決方案,以及:

  • 升級你的硬件,以幫助減少計算時間
2

您可以嘗試分佈式構建系統Incredibuild:http://www.xoreax.com/visual_studio.htm

+0

這是否也適用於鏈接?我的一些惱人的編譯時間是由於鏈接。 – 2009-07-29 19:38:54

0

使該項目的多個解決方案,不僅包括項目的相關子集,離開了發佈等一個超級解決方案

4

如果每個需要構建它分配中的構建過程的計算機上安裝IncrediBuild所有的機器。 如果您真的只想在問題上拋出硬件,您可以設置幾臺專用機器,這些機器僅用作IncrediBuild客戶端。

在不同的規模上,確保你的每個項目都有正確配置的預編譯頭文件。

2

你可以使用像lint這樣的工具來查看你的C++項目中是否有多餘的包含文件。

在這個問題上還有一篇關於Games from Within的文章。