出處1:https://docs.microsoft.com/zh-cn/visualstudio/ide/optimize-visual-studio-startup-time?view=vs-2017ios
Visual Studio 性能建議適用於內存不足的狀況,這種狀況極少出現。 出現這種狀況時,可優化某些未使用的 Visual Studio 功能。 如下提示不做爲通常性建議。github
爲了不啓動時間延長,Visual Studio 2017 使用按需方法加載擴展。 該行爲意味着不會在 Visual Studio 啓動後當即打開擴展,而是根據須要打開。 此外,因爲在以前的 Visual Studio 會話中保持工具窗口的打開狀態會使啓動時間變慢,所以 Visual Studio 以更智能的方式打開工具窗口,從而避免影響啓動時間。typescript
若是 Visual Studio 檢測到啓動速度較慢,則會彈出一條消息,提示你致使速度變慢的擴展或工具窗口。 此消息提供了指向「管理 Visual Studio 性能」對話框的連接。 還能夠經過在菜單欄中選擇「幫助」 > 「管理 Visual Studio 性能」,訪問此對話框。windows
該對話框會列出影響啓動性能的擴展和工具窗口。 可更改擴展和工具窗口的設置以提升啓動性能。編輯器
經過在菜單欄上選擇「幫助」 > 「管理 Visual Studio 性能」,打開「管理 Visual Studio 性能」對話框。ide
若是某個擴展使 Visual Studio 的啓動、解決方案加載或鍵入變慢,此擴展將顯示在「擴展」 > 「啓動」(或「解決方案加載」或「鍵入」)下的「管理 Visual Studio 性能」對話框中。工具
選擇想要禁用的擴展,而後選擇「禁用」按鈕。visual-studio
能夠始終使用「擴展管理器」或「管理 Visual Studio 性能」對話框從新啓用擴展,以用於之後的會話。性能
經過在菜單欄上選擇「幫助」 > 「管理 Visual Studio 性能」,打開「管理 Visual Studio 性能」對話框。
若是某個工具窗口使 Visual Studio 啓動變慢,此工具窗口將顯示在「工具窗口」 > 「啓動」下的「管理 Visual Studio 性能」對話框中。
選擇想要更改其行爲的工具窗口。
選擇下列三個選項的其中一個:
使用默認行爲: 工具窗口默認行爲。 選中此項將不會提高啓動性能。
啓動時不顯示窗口: 打開 Visual Studio 時,指定的工具窗口將始終關閉,即便它在上一個會話中保留打開狀態。 須要時能夠從相應的菜單中打開工具窗口。
啓動時自動隱藏窗口: 若是工具窗口在上一個會話中保留打開狀態,則此選項將在啓動時摺疊工具窗口組,以免初始化工具窗口。 若是常用工具窗口,那麼這是一個不錯的選擇。 由於工具窗口仍然可用,但不會再對 Visual Studio 啓動時間產生負面影響。
若是當前使用 Visual Studio 2017,請確保運行版本 15.6 或更高版本。 數據顯示,在版本 15.6 中,解決方案的加載速度最高可提高兩到三倍。
若是考慮升級硬件,固態硬盤 (SSD) 對性能的影響比額外的 RAM 或更快的 CPU 更大。
若要添加 SSD,爲了得到最佳性能,應將 Windows 安裝在 SSD 上,而非硬盤驅動器 (HDD)。 Visual Studio 解決方案的驅動器位置彷佛沒有那麼重要。
此外,不要從 USB 驅動器運行解決方案。 請將其複製到 HDD 或 SSD。
若是將系統從 Windows 32 位版本升級到 64 位版本,那麼 Visual Studio 的可用虛擬內存量會從 2 GB 擴展到 4 GB。 這樣,即便 Visual Studio 是 32 位進程,也能夠處理更大的工做負荷。
有關詳細信息,請參閱內存限制和在 64 位 Windows 上使用 /LARGEADDRESSAWARE。
Visual Studio 會自動從新打開上一個會話中處於打開狀態的文檔。 這可將加載解決方案所需的時間延長 30% 或更多,具體取決於項目類型和打開的文檔。 Windows 窗體和 XAML 等設計器以及一些 JavaScript 和 typescript 文件的打開速度較慢。
當自動文檔還原致使解決方案加載速度明顯變慢時,Visual Studio 會以黃色顯示欄通知。 可按照如下步驟禁用自動文件從新打開:
選擇「工具」 > 「選項」,打開「選項」對話框。
在「項目和解決方案」 > 「常規」頁面上,取消選中「從新打開解決方案加載文檔」。
若是禁止自動還原文件,可以使用任一轉到命令快速導航到要打開的文件:
對於常規「轉到」功能,請選擇「編輯」 > 轉到」 > 轉到全部」(或按 Ctrl+T)。
在 Visual Studio 2017 版本 15.8 及更高版本中,可以使用「編輯」 > 「轉到」 > 「轉到上次編輯位置」(或按 Ctrl+Shift+Backspace)跳轉到解決方案中上次編輯的位置。
在 Visual Studio 2017 版本 15.8 及更高版本中,使用「轉到最近使用的文件」以查看解決方案中最近訪問的文件的列表。 選擇「編輯」 > 「轉到」 > 「轉到最近使用的文件」(或按 Ctrl+一、Ctrl +R)。
若是常常在調試會話期間遇到內存不足的狀況,能夠經過更改一項或多項配置來優化性能。
啓用「僅個人代碼」
最簡單的優化是啓用「僅個人代碼」 功能,啓用此功能後只會加載你項目的符號。 啓用此功能後,調試託管的應用程序 (.NET) 時可節省大量內存。 對於某些項目類型,此選項默認爲啓用狀態。
要啓用「僅個人代碼」,請選擇「工具」 > 「選項」 > 「調試」 > 「常規」,而後選擇「啓用僅個人代碼」。
指定要加載的符號
對於本機調試,加載符號文件 (.pdb) 會佔用不少內存資源。 可經過配置調試程序符號設置來節省內存。 一般狀況下,將解決方案配置爲僅加載你項目中的模塊。
要指定符號加載,請選擇「工具」 > 「選項」 > 「調試」 > 「符號」。
將選項設置爲「僅指定模塊」,而不是「全部模塊」,而後指定要加載的負載。 調試時,還能夠在「模塊」窗口中右鍵單擊特定模塊,將其顯示包含在系統加載中。 (要在調試時打開窗口,請選擇「調試」 > 「窗口」 > 「模塊」。)
有關詳細信息,請參閱瞭解符號文件。
禁用診斷工具
建議在使用 CPU 分析後將其禁用。 此功能可能會佔用大量資源。 CPU 分析處於啓用狀態後,後續調試會話中會一直保持啓用狀態,所以可在其完成時將其顯示關閉。 若是不須要提供的功能,能夠經過在調試時禁用診斷工具節省一些資源。
要禁用「診斷工具」,請啓動一個調試會話,選擇「工具」 > 「選項」 > 「啓用診斷工具」,並取消選擇該選項。
有關詳細信息,請參閱分析工具。
某些工具或擴展會關閉以提升性能。
提示
一般能夠經過一次關閉一個擴展並從新檢查性能來隔離性能問題。
有關 .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 垃圾回收器的詳細描述,請參閱垃圾回收的基本原理。