簡體   English   中英

加快ASP.NET中的構建時間

[英]Speeding up build times in ASP.NET

我目前參與了一個ASP.NET項目,該項目包含大約40個項目。 我們正在克隆的Virtual PC環境中進行所有開發,因此所有開發人員都具有相同的設置。 這一切都很好,管理依賴關系很容易,但構建解決方案的速度非常慢。 Virtual PC只能使用一個CPU,因此我實際上只使用了一半的計算機資源。

從構建到完整的頁面加載需要整整3分鍾......隨着項目的增長,它每天都在變得越來越糟糕。 修復簡單的事情開始花費很長時間並且個人而言,我一直在等待,因為我在計算機編譯時無法真正工作。

有沒有辦法在多台計算機上分配我的構建以加快構建過程?

SSD會不會明顯改善我的構建時間?

有沒有其他方法可以加快構建速度?

注意 :我嘗試使用ngen預編譯靜態依賴項,但后來讀到ASP.NET不支持ngen 我使用Visual Studio 2008,虛擬環境中沒有防病毒軟件。

通過執行以下操作,您可以大大減少等待ASP.NET構建的時間:

  • 使用新的“optimizeCompilations”標志。 它會告訴.NET不要因為你改變了一個項目/ dll而重建整個項目。 如果你有40個項目並且不使用它,那么每次在一個項目中更改一個簡單方法時,.NET將嘗試編譯所有其他項目和dll。 使用新標志(加上修補程序的安裝),您將看到在開發過程中大大提高了整體性能。 請查看此博客文章,詳細了解如何使用optimizeCompilations標記加速構建: http//www.wagnerdanda.me/2009/11/optimizing-asp-net-build-time-with-dynamic-compilation -and-optimizecompilations /

希望能幫助到你!

瓦格納丹達達席爾瓦

以下是使用ASP.NET加快構建時間的另一個提示:

  • 如果您有足夠的內存,請創建一個RamDisk並將ASP.NET臨時文件指向此基於ram的磁盤。 查看此博客文章,了解有關如何使用RamDisk加快ASP.NET項目構建時間的更多詳細信息: http ://www.wagnerdanda.me/2009/11/speeding-up-build-times-in-asp-net -with-RAMDISK /

希望能幫助到你!

瓦格納丹達達席爾瓦

您是否每次都需要重建所有40個項目。

您可以配置在“解決方案配置”設置中構建的內容。

即如果您的更改僅在您的WebUI項目中,並且其他39個項目未更改,則可以創建僅在重建Web應用程序的構建配置。

  • 查看配置下拉菜單
  • 單擊“配置管理器”
  • 在“Active Solution Configuration”下拉菜單中單擊“New”
  • 創建從“調試配置”復制的新配置
  • 在新配置中,取消選中除已更改的項目之外的所有項目構建

Scott Gu有一個相當有用的帖子:

提示/技巧:使用VS 2005優化ASP.NET 2.0 Web項目構建性能

Scott還有另一篇關於此硬盤速度的文章,它也對Visual Studio的一般性能有影響:

提示/技巧:硬盤速度和Visual Studio性能

不要在解決方案中放置太多項目。 僅在代碼在不同進程或不同計算機上運行時才創建新項目。 在大多數情況下,創建這么多項目是沒有用的。 項目數量是msbuild中最顯着的減速。

我們在公司所做的是使用文件引用,因此只需要構建已更改的項目,並且在任何給定時間我的解決方案中不超過10個項目,大多數是2~3個項目。

我們還為每次簽入構建我們的主干,並為開發人員提供批處理文件以提取最新的dll。

當然,這並不能阻止痛苦的裝配參考錯誤的發生,但是它們在一段時間后變得比問題更令人討厭。

你沒有提到你的Visual Studio版本,但如果它是2005年你可能想考慮升級到2008.在我的情況下,這減少了大型(30+項目)解決方案的構建時間。

另一種選擇是預先構建一些不再更改的庫,並引用已編譯的dll而不是項目。

我們有類似的情況,我發現我們的虛擬機受到嚴重限制,因此雖然它們每個都運行在一個CPU上,但是不允許它們充分利用該CPU。 我設法在一個物理上運行3個虛擬機,所有都執行速度提高100%。


我還試着減少你的項目數量。 我們的主要解決方案有40個項目,我一直在慢慢整合這些項目,並確保新開發項目盡可能適應現有項目。 這方面的主要元凶是webservices,其中每個服務最初都是在一個單獨的項目中創建的。 我現在將所有新的Web服務添加到一個項目中,然后慢慢移動其他項目。

您也可以考慮切換到VMware Workstation,它使用多個處理器。 我目前正在使用具有兩個雙處理器VM的設置,並且所有四個都可以使用。

您是否嘗試過調整虛擬PC?

http://www.windowsnetworking.com/articles_tutorials/Tuning-Virtual-PC-Performance.html

舊文章,但要點仍然是正確的。

我發現,在類似的情況下,為VPC磁盤映像配備一個單獨的硬盤可以顯着提高性能,尤其是在刪除一些限制時。

也許問題不是Visual Studio,只是編譯是資源密集的事實。

暫無
暫無

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

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