1. 程式人生 > >VS2017 性能優化方法

VS2017 性能優化方法

pri 將在 查看 產生 lin tips 屬於 中一 dea

原文地址:https://www.cnblogs.com/mahatmasmile/p/10394168.html

出處1:https://docs.microsoft.com/zh-cn/visualstudio/ide/optimize-visual-studio-startup-time?view=vs-2017

出處2:https://docs.microsoft.com/zh-cn/visualstudio/ide/visual-studio-performance-tips-and-tricks?view=vs-2017

Visual Studio 性能建議適用於內存不足的情況,這種情況極少出現。 出現這種情況時,可優化某些未使用的 Visual Studio 功能。 以下提示不作為一般性建議。

啟動優化

為了避免啟動時間延長,Visual Studio 2017 使用按需方法加載擴展。 該行為意味著不會在 Visual Studio 啟動後立即打開擴展,而是根據需要打開。 此外,由於在之前的 Visual Studio 會話中保持工具窗口的打開狀態會使啟動時間變慢,因此 Visual Studio 以更智能的方式打開工具窗口,從而避免影響啟動時間。

如果 Visual Studio 檢測到啟動速度較慢,則會彈出一條消息,提示你導致速度變慢的擴展或工具窗口。 此消息提供了指向“管理 Visual Studio 性能”對話框的鏈接。 還可以通過在菜單欄中選擇“幫助” > “管理 Visual Studio 性能”,訪問此對話框。

技術分享圖片

該對話框會列出影響啟動性能的擴展和工具窗口。 可更改擴展和工具窗口的設置以提高啟動性能。

更改擴展設置以改善啟動、解決方案加載和鍵入性能

  1. 通過在菜單欄上選擇“幫助” > “管理 Visual Studio 性能”,打開“管理 Visual Studio 性能”對話框。

    如果某個擴展使 Visual Studio 的啟動、解決方案加載或鍵入變慢,此擴展將顯示在“擴展” > “啟動”(或“解決方案加載”或“鍵入”)下的“管理 Visual Studio 性能”對話框中。

    技術分享圖片

  2. 選擇想要禁用的擴展,然後選擇“禁用”按鈕。

可以始終使用“擴展管理器”或“管理 Visual Studio 性能”對話框重新啟用擴展,以用於以後的會話。

更改工具窗口設置以改善啟動時間

  1. 通過在菜單欄上選擇“幫助” > “管理 Visual Studio 性能”,打開“管理 Visual Studio 性能”對話框。

    如果某個工具窗口使 Visual Studio 啟動變慢,此工具窗口將顯示在“工具窗口” > “啟動”下的“管理 Visual Studio 性能”對話框中。

  2. 選擇想要更改其行為的工具窗口。

  3. 選擇下列三個選項的其中一個:

    • 使用默認行為: 工具窗口默認行為。 選中此項將不會提升啟動性能。

    • 啟動時不顯示窗口: 打開 Visual Studio 時,指定的工具窗口將始終關閉,即使它在上一個會話中保留打開狀態。 需要時可以從相應的菜單中打開工具窗口。

    • 啟動時自動隱藏窗口: 如果工具窗口在上一個會話中保留打開狀態,則此選項將在啟動時折疊工具窗口組,以避免初始化工具窗口。 如果經常使用工具窗口,那麽這是一個不錯的選擇。 因為工具窗口仍然可用,但不會再對 Visual Studio 啟動時間產生負面影響。

      技術分享圖片

更新到 Visual Studio 2017 版本 15.6 或更高版本

如果當前使用 Visual Studio 2017,請確保運行版本 15.6 或更高版本。 數據顯示,在版本 15.6 中,解決方案的加載速度最高可提升兩到三倍。

硬件

如果考慮升級硬件,固態硬盤 (SSD) 對性能的影響比額外的 RAM 或更快的 CPU 更大。

若要添加 SSD,為了獲得最佳性能,應將 Windows 安裝在 SSD 上,而非硬盤驅動器 (HDD)。 Visual Studio 解決方案的驅動器位置似乎沒有那麽重要。

此外,不要從 USB 驅動器運行解決方案。 請將其復制到 HDD 或 SSD。

使用 64 位操作系統

如果將系統從 Windows 32 位版本升級到 64 位版本,那麽 Visual Studio 的可用虛擬內存量會從 2 GB 擴展到 4 GB。 這樣,即使 Visual Studio 是 32 位進程,也可以處理更大的工作負荷。

有關詳細信息,請參閱內存限制和在 64 位 Windows 上使用 /LARGEADDRESSAWARE。

禁用自動文件還原

Visual Studio 會自動重新打開上一個會話中處於打開狀態的文檔。 這可將加載解決方案所需的時間延長 30% 或更多,具體取決於項目類型和打開的文檔。 Windows 窗體和 XAML 等設計器以及一些 JavaScript 和 typescript 文件的打開速度較慢。

當自動文檔還原導致解決方案加載速度明顯變慢時,Visual Studio 會以黃色顯示欄通知。 可按照以下步驟禁用自動文件重新打開:

  1. 選擇“工具” > “選項”,打開“選項”對話框。

  2. 在“項目和解決方案” > “常規”頁面上,取消選中“重新打開解決方案加載文檔”。

如果禁止自動還原文件,可使用任一轉到命令快速導航到要打開的文件:

  • 對於常規“轉到”功能,請選擇“編輯” > 轉到” > 轉到所有”(或按 Ctrl+T)。

  • 在 Visual Studio 2017 版本 15.8 及更高版本中,可使用“編輯” > “轉到” > “轉到上次編輯位置”(或按 Ctrl+Shift+Backspace)跳轉到解決方案中上次編輯的位置。

  • 在 Visual Studio 2017 版本 15.8 及更高版本中,使用“轉到最近使用的文件”以查看解決方案中最近訪問的文件的列表。 選擇“編輯” > “轉到” > “轉到最近使用的文件”(或按 Ctrl+1、Ctrl +R)。

配置調試選項

如果經常在調試會話期間遇到內存不足的情況,可以通過更改一項或多項配置來優化性能。

  • 啟用“僅我的代碼”

    最簡單的優化是啟用“僅我的代碼” 功能,啟用此功能後只會加載你項目的符號。 啟用此功能後,調試托管的應用程序 (.NET) 時可節省大量內存。 對於某些項目類型,此選項默認為啟用狀態。

    要啟用“僅我的代碼”,請選擇“工具” > “選項” > “調試” > “常規”,然後選擇“啟用僅我的代碼”。

  • 指定要加載的符號

    對於本機調試,加載符號文件 (.pdb) 會占用很多內存資源。 可通過配置調試程序符號設置來節省內存。 通常情況下,將解決方案配置為僅加載你項目中的模塊。

    要指定符號加載,請選擇“工具” > “選項” > “調試” > “符號”。

    將選項設置為“僅指定模塊”,而不是“所有模塊”,然後指定要加載的負載。 調試時,還可以在“模塊”窗口中右鍵單擊特定模塊,將其顯示包含在系統加載中。 (要在調試時打開窗口,請選擇“調試” > “窗口” > “模塊”。)

    有關詳細信息,請參閱了解符號文件。

  • 禁用診斷工具

    建議在使用 CPU 分析後將其禁用。 此功能可能會占用大量資源。 CPU 分析處於啟用狀態後,後續調試會話中會一直保持啟用狀態,因此可在其完成時將其顯示關閉。 如果不需要提供的功能,可以通過在調試時禁用診斷工具節省一些資源。

    要禁用“診斷工具”,請啟動一個調試會話,選擇“工具” > “選項” > “啟用診斷工具”,並取消選擇該選項。

    有關詳細信息,請參閱分析工具。

禁用工具和擴展

某些工具或擴展會關閉以提高性能。

提示

通常可以通過一次關閉一個擴展並重新檢查性能來隔離性能問題。

托管的語言服務 (Roslyn)

有關 .NET Compiler Platform(“Roslyn”)性能註意事項的詳細信息,請參閱 Performance considerations for large solutions(大型解決方案的性能註意事項)。

  • 禁用完整解決方案分析

    Visual Studio 對整個解決方案執行分析,以在調用生成前提供關於錯誤的豐富體驗。 此功能可用於盡快速識別錯誤。 但是,對於大型解決方案,這一功能可能會占用大量內存資源。 如果遇到內存不足或類似問題,可以禁用此體驗並釋放這些資源。 默認情況下,Visual Basic 啟用此選項,而 C# 禁用此選項。

    若要禁用“完整解決方案分析”,請選擇“工具” > “選項” > “文本編輯器”,替換選擇“Visual Basic”或“C#”。 選擇“高級”,並取消選中“啟用完整解決方案分析”。

  • 禁用 CodeLens

    Visual Studio 對顯示的每個方法執行“查找所有引用”任務。 CodeLens 提供內聯顯示引用數目等功能。 工作在單獨的進程(例如 ServiceHub.RoslynCodeAnalysisService32)中執行。 在大型解決方案或資源受限的系統中,此功能對性能有顯著影響。 例如,如果在 4 GB 計算機上加載大型解決方案時遇到內存問題,或進程的 CPU 使用率過高,可禁用 CodeLens 以釋放資源。

    要禁用 CodeLens,請選擇“工具” > “選項” > “文本編輯器” > “所有語言” > “CodeLens”,然後取消選擇該功能。

    備註

    CodeLens 在 Visual Studio Professional 和 Enterprise 版本中提供。

其他工具和擴展

  • 禁用擴展

    擴展是添加到 Visual Studio 的附加軟件組件,用於提供新功能或擴展現有功能。 擴展通常可能導致內存資源問題。 如果遇到內存資源問題,請嘗試一次禁用一個擴展,並查看這將如何影響方案或工作流。

    要禁用擴展,請轉到“工具” > “擴展和更新”,然後禁用特定擴展。

  • 禁用 XAML 設計器

    默認情況下,XAML 設計器處於啟用狀態,但是只會在打開 .xaml 文件時占用資源。 如果使用 XAML 文件,但不希望使用設計器功能,請禁用此功能以釋放內存。

    要禁用 XAML 設計器,請轉到“工具” > “選項” > “XAML 設計器” > “啟用 XAML 設計器”,然後取消選擇該選項。

  • 刪除工作負載

    可以使用 Visual Studio 安裝程序刪除不再使用的工作負載。 此操作可以跳過不再使用的包和程序集,從而優化啟動和運行時的資源占用。

強制垃圾回收

CLR 使用垃圾回收內存管理系統。 在此系統中,內存有時會被不再需要的對象占用。 這一狀態是臨時的,垃圾回收器會基於其性能和資源使用情況試探法釋放此內存。 可通過在 Visual Studio 中使用熱鍵強制 CLR 回收任何未使用的內存。 如果有大量垃圾等待回收並已強制垃圾回收,可在“任務管理器”中看到 devenv.exe 進程的內存使用率降低。 很少需要使用此方法。 但是,在完成一個資源占用較高的操作(如完整生成、調試會話或解決方案打開事件)後,此方法有助於確定進程實際在使用的內存量。 由於 Visual Studio 屬於混合型(托管和本機),因此本機分配器和垃圾回收器有時可能會競爭有限的內存資源。 在內存使用率較高的情況下,這可能有助於強制垃圾回收器運行。

要強制垃圾回收,請使用熱鍵:Ctrl+Alt+Shift+F12,Ctrl+Alt+Shift+F12(按兩次)。

如果強制垃圾回收確實可讓方案正常工作,請通過 Visual Studio 反饋工具提交報告,因為這一行為可能是一個 Bug。

有關 CLR 垃圾回收器的詳細描述,請參閱垃圾回收的基本原理。

VS2017 性能優化方法