我們在我們的開發部門有一臺生產機器,我們已經在整個工作日內建立了這臺生產機器。 這樣做是:我們應該通過哪些硬件改進來加速構建機器?
- 刪除源代碼先前簽出(5分鐘)
- 是否從顛覆一個乾淨的檢出(15分鐘)
- 構建一大堆的C++和.NET代碼( 35分鐘)
- 構建安裝並運行單元測試(5分鐘)
鑑於上述情況,什麼樣的影響,會增加不同的硬件對改善需要做以上的時間?
例如 - 我正在考慮使用SSD作爲硬盤,因爲編譯涉及大量的隨機磁盤訪問。
顛覆服務器當前是一個虛擬機 - 將它切換爲物理機幫助緩慢結帳?
從Core 2 Duo處理器升級到i7會有什麼影響?
有關加速上述的其他建議嗎?
這是多少並行處理?例如你是否在平行檢查不同的項目,並且你在做一個並行構建? (我覺得它奇怪的消滅了以前的結賬雖然需要5分鐘..) – nos 2010-09-24 14:02:30
沒有一個真正的並行。刪除需要很長時間,因爲代碼很多,並且C++項目會生成一個大的中間文件。最終的結果是,我們必須刪除分散在大量文件中的5GB以上的數據。我可能會嘗試的是移動舊的源代碼而不是刪除它,因爲這非常瞬間。 – 2010-09-24 16:28:56
您特別要求提供硬件解決方案,但我看到一個軟件優化:您的svn結帳。我們編寫了一個腳本,它執行svn狀態,解析其輸出,並使用它來刪除所有未版本化的文件並還原所有版本化的文件,然後僅執行svn更新,而不是刪除並執行全新的結帳。每次構建都會減少很多時間。唯一的缺點是,如果我們在svn操作過程中停止構建,它將鎖定工作副本,並且在構建再次通過之前我們必須手動解鎖。我們認爲這是不值得的。 – 2010-09-27 11:55:16