簡體   English   中英

有沒有辦法加快Visual Studio團隊服務(和TFS)的構建速度

[英]Is there a way to speed up the builds in visual studio team services (and TFS)

我們的團隊使用visual studio online建立了持續集成。 我們已經嘗試通過付費構建限制來提升我們的高級訂閱,這是我們無法實現的。 但是,構建時間異常緩慢。

構建將在隊列中停留幾分鍾,然后花費幾分鍾來運行[甚至在測試將Nuget包添加到源代碼控制時]。

有沒有辦法加快Visual Studio Online的構建速度? 如果沒有什么是好的選擇?

我認為在Azure VM上接受或設置我們自己的持續集成服務器是最糟糕的情況。

托管構建服務器存在一些缺陷。 首先,它們總是干凈的圖像,沒有任何保留,因此您的源,包和以前構建的二進制文件不可用。 因此,進一步加快構建速度的唯一方法是:

  • 通過以NuGet包的形式重用以前的結果,減少您構建的項目數量。 這將要求您將解決方案分解為較小的位並使用Visual Studio Team Services的包管理功能或MyGet等第三方服務。
  • 並行化您的構建。 如果您正在構建多個項目或多個配置,則可以使用MultiConfiguration選項在多個代理上啟動多個構建(在這種情況下,您需要分配多個托管代理) 在此輸入圖像描述
  • 啟用BuildInParallel以允許MsBuild啟動多個實例並啟用MaxCpuCount=2以使用托管代理上可用的多個CPU核心。 它看起來像是在A3實例上運行,它可以讓你玩4個內核。 如果您同時使用BuildInParallelMaxCpuCount則不要BuildInParallel MaxCpuCount上的核心MaxCpuCount
  • 使用OutputPath所有輸出構建到單個目錄。
  • 使用構建任務上的復選框啟用並行測試執行。
  • 盡可能多地調整工作區映射。 不需要的披風文件夾,僅映射您真正需要的內容。
  • 跳過CI構建不需要的所有內容。 您可能希望關閉Code Analaysis並僅在每晚構建時運行完整的測試套件,以增加您的反饋時間,即使您降低了反饋質量。

這和你能做的一樣多。 您無法在托管池中租用更快的VM,也無法使用MsBuild中的任何功能,這些功能允許您執行增量構建或至少對工作區進行增量更新。 並且無法刪除代理的初始化時間和源檢索。

要真正加快速度,您需要設置自己的構建服務器。 使用在永久SSD上運行的DS Azure VM將為您帶來最大的性能優勢。 使用您自己的VM,您可以執行以下其他操作:

  • 關閉Clean Workspace。 這將允許增量源控制提取。
  • 關閉Clean Build。 這將允許MsBuild執行增量構建。
  • 在同一台計算機上安裝多個代理,並在同一個VM上並行構建多個配置。
  • 在構建代理上安裝TFVC代理(使用TFS 2013版本)以獲取本地存儲的文件,以防您希望使用干凈的工作區進行構建,但可以利用更快的TFVC源檢索。
  • 如果您正在使用Pre / Postbuild事件,請確保它們指定其輸入和輸出,以便MsBuild推斷是否可以跳過目標以進行增量構建。

您可以在強大的開發人員工作站或現有本地服務器上安裝本地構建代理,而不是在Azure上托管代理。

還有其他MsBuild提示和技巧可以應用於進一步提高MsBuild的性能。 你可能會驚訝地發現你可以花多少時間來削減你的構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM