戰(zhàn):從性能優(yōu)化到調(diào)試技巧的完整指南)
1. 項(xiàng)目概述為什么VS2019的設(shè)置值得你花時間如果你是一名C、C#或任何.NET生態(tài)的開發(fā)者Visual Studio 2019簡稱VS2019大概率是你吃飯的家伙。但很多人把它裝好新建項(xiàng)目就開始埋頭寫代碼默認(rèn)設(shè)置用到底。這就像開一輛頂配跑車卻一直用經(jīng)濟(jì)模式在市區(qū)里溜達(dá)完全沒發(fā)揮出它的性能。我見過太多同事抱怨VS“卡頓”、“智能提示慢”、“調(diào)試不方便”一問才發(fā)現(xiàn)很多能極大提升效率的設(shè)置他們壓根沒動過。VS2019的設(shè)置系統(tǒng)龐大而復(fù)雜從編輯器外觀到編譯優(yōu)化從調(diào)試器行為到擴(kuò)展管理覆蓋了開發(fā)的方方面面。合理的設(shè)置不是“錦上添花”而是“雪中送炭”它能直接決定你的編碼流暢度、排錯效率和長期的項(xiàng)目維護(hù)成本。今天我就結(jié)合自己多年踩坑和優(yōu)化的經(jīng)驗(yàn)把這些真正“常用”且“有效”的設(shè)置梳理出來。這不是一份面面俱到的說明書而是一份實(shí)戰(zhàn)派的配置清單目標(biāo)是讓你在半小時內(nèi)把VS2019調(diào)教成一個更懂你的高效伙伴。無論你是剛接觸VS的新手還是用了多年但總覺得哪里不對勁的老鳥相信都能找到立刻能用上的技巧。2. 核心思路從“能用”到“好用”的配置哲學(xué)在動手修改任何一個復(fù)選框之前我們需要先建立正確的配置觀念。VS2019的設(shè)置并非越多越好盲目照搬別人的配置清單也可能水土不服。我的核心思路是分層配置按需優(yōu)化。第一層性能與響應(yīng)速度。這是基礎(chǔ)如果IDE本身卡頓再多的功能也是徒勞。這一層的設(shè)置目標(biāo)是保證VS2019在你當(dāng)前的硬件上運(yùn)行流暢核心是調(diào)整那些影響UI渲染、后臺索引和實(shí)時檢查的選項(xiàng)。第二層編輯與導(dǎo)航效率。這是我們花費(fèi)時間最多的區(qū)域。代碼補(bǔ)全、快速導(dǎo)航、重構(gòu)工具、代碼片段這些功能的響應(yīng)速度和準(zhǔn)確度直接決定了你的“心流”狀態(tài)能持續(xù)多久。這一層的設(shè)置要極度個性化貼合你的編碼習(xí)慣和項(xiàng)目類型。第三層調(diào)試與診斷體驗(yàn)。寫代碼只是開始調(diào)試才是大頭。如何快速定位問題、直觀查看變量、控制異常行為這些設(shè)置能把你從“猜謎游戲”中拯救出來將調(diào)試時間壓縮到最短。第四層項(xiàng)目與生成配置。這關(guān)系到最終產(chǎn)出的質(zhì)量。編譯優(yōu)化等級、警告級別、平臺工具集等雖然通常在項(xiàng)目屬性中設(shè)置但理解其原理并通過預(yù)設(shè)模板應(yīng)用能保證團(tuán)隊(duì)協(xié)作的一致性?;谶@個思路下面的設(shè)置將按照這四層展開。我會先告訴你“改什么”然后重點(diǎn)解釋“為什么這么改”以及“改了之后會有什么效果”。有些設(shè)置是普適的強(qiáng)烈推薦有些則取決于你的工作流我會給出選擇的依據(jù)。3. 第一層配置提升性能與響應(yīng)速度VS2019功能強(qiáng)大但也比較吃資源。不當(dāng)?shù)脑O(shè)置會讓它變得臃腫遲緩。首先我們打開“工具” - “選項(xiàng)”進(jìn)行以下調(diào)整。3.1 視覺體驗(yàn)與動畫效果路徑工具-選項(xiàng)-環(huán)境-常規(guī)。禁用動畫效果取消勾選“基于客戶端性能自動調(diào)整視覺體驗(yàn)”和“在可能的情況下使用硬件圖形加速”。聽起來很矛盾聽我解釋。第一個選項(xiàng)會讓VS根據(jù)你的電腦性能動態(tài)啟用或禁用一些效果但它的判斷有時并不準(zhǔn)確反而可能導(dǎo)致卡頓。第二個選項(xiàng)硬件加速理論上更好但在某些顯卡驅(qū)動或遠(yuǎn)程桌面環(huán)境下可能導(dǎo)致渲染異?;蜷W爍。對于追求絕對流暢的開發(fā)者我建議兩者都關(guān)閉讓VS使用最穩(wěn)定、最基礎(chǔ)的渲染模式。實(shí)測在多數(shù)機(jī)器上關(guān)閉后窗口拖拽、滾動、菜單彈出都更跟手。顏色主題選擇一個對比度清晰、你自己看著舒服的主題。深色主題如“深色”不僅能減少長時間編碼的視覺疲勞對于OLED屏幕的設(shè)備也有省電效果。這不是性能設(shè)置但對長期使用的舒適度至關(guān)重要。3.2 后臺任務(wù)與實(shí)時分析路徑工具-選項(xiàng)-文本編輯器-常規(guī)。滾動條設(shè)置在右側(cè)的“滾動條”下拉框中選擇“僅使用垂直滾動條”。這能節(jié)省一點(diǎn)點(diǎn)UI資源更重要的是讓界面更簡潔。那些花哨的代碼地圖Map Mode對于小型項(xiàng)目意義不大在大項(xiàng)目中反而可能因持續(xù)渲染而影響性能。語句自動完成建議關(guān)閉“輸入時顯示完成列表”。這個功能的本意是好的但它的觸發(fā)過于頻繁每輸入一個字符都可能彈出會打斷你的輸入節(jié)奏并且后臺的持續(xù)分析也會消耗CPU。我更推薦使用CtrlJ 或 CtrlSpace來手動觸發(fā)智能提示這樣控制權(quán)在你手里提示列表也更準(zhǔn)確。路徑工具-選項(xiàng)-文本編輯器-C/C-高級或其他語言類似路徑。IntelliSense 與瀏覽數(shù)據(jù)庫禁用 IntelliSense永遠(yuǎn)保持默認(rèn)的 False。關(guān)了它VS的代碼補(bǔ)全就廢了。禁用 Resolve保持默認(rèn)。這是解析引用的關(guān)鍵。禁用自動快速信息可以設(shè)為True。這個功能是當(dāng)你鼠標(biāo)懸停在變量上時自動顯示工具提示有時會礙事。你可以通過CtrlK, CtrlI快捷鍵來手動查看更加可控。禁用后臺解析對于大型解決方案例如超過100個項(xiàng)目如果你在編輯時明顯感到卡頓可以嘗試設(shè)為True。但這會延遲錯誤波浪線的顯示。這是一個典型的性能與實(shí)時性的權(quán)衡對于普通項(xiàng)目保持False即可。最大緩存大小如果你的C項(xiàng)目非常龐大可以適當(dāng)增加這個值比如從默認(rèn)的幾GB增加到10GB或更多前提是你的系統(tǒng)內(nèi)存充足32GB。這能讓IntelliSense數(shù)據(jù)庫緩存更多信息加快后續(xù)的解析速度。注意修改高級選項(xiàng)下的設(shè)置需要謹(jǐn)慎建議一次只改一項(xiàng)測試無誤后再改下一項(xiàng)。錯誤的設(shè)置可能導(dǎo)致IntelliSense完全失效。3.3 解決方案加載與項(xiàng)目管理輕量級解決方案加載對于包含大量項(xiàng)目的解決方案在打開解決方案時VS2019會詢問是否啟用“輕量級加載”。務(wù)必選擇“是”。它只會加載你當(dāng)前需要編輯的項(xiàng)目其他項(xiàng)目僅以“虛擬項(xiàng)目”形式存在極大地減少了內(nèi)存占用和啟動時間。當(dāng)你需要編譯或編輯其他項(xiàng)目時右鍵點(diǎn)擊該項(xiàng)目選擇“重新加載項(xiàng)目”即可。關(guān)閉不需要的工具窗口諸如“屬性窗口”、“工具箱”對于非桌面GUI開發(fā)、“服務(wù)器資源管理器”等如果當(dāng)前用不到就關(guān)掉它們。每個窗口都在占用UI線程和內(nèi)存資源。你可以通過“窗口” - “重置窗口布局”來快速恢復(fù)到干凈的編輯布局。4. 第二層配置優(yōu)化編輯與導(dǎo)航效率這一部分是核心直接關(guān)乎你的編碼速度和幸福感。4.1 鍵盤快捷鍵打造肌肉記憶路徑工具-選項(xiàng)-環(huán)境-鍵盤。VS的快捷鍵方案很多我強(qiáng)烈推薦使用“Visual C 2005”或“Visual Studio Code”方案。它們更符合現(xiàn)代開發(fā)習(xí)慣。但更重要的是自定義。以下是我必改的幾個編輯.快速操作Refactor默認(rèn)是 Ctrl.句點(diǎn)。這個快捷鍵用于快速調(diào)用重構(gòu)建議如重命名、提取方法、生成構(gòu)造函數(shù)等使用頻率極高必須放在最順手的位置。我保持默認(rèn)因?yàn)樗呀?jīng)很方便。視圖.下一個錯誤F8。在錯誤列表和代碼間快速跳轉(zhuǎn)比用鼠標(biāo)點(diǎn)高效十倍。調(diào)試.切換斷點(diǎn)F9。這個默認(rèn)就有務(wù)必熟練。編輯.注釋選定行CtrlK, CtrlC和取消注釋CtrlK, CtrlU。這是多行注釋的黃金組合。編輯.格式化文檔CtrlK, CtrlD。保持代碼格式統(tǒng)一的神器。實(shí)操心得不要一次性改太多快捷鍵容易記混。先改最常用的3-5個用上一周形成肌肉記憶后再改下一批。你可以將自定義的快捷鍵方案導(dǎo)出備份重裝系統(tǒng)或換電腦時直接導(dǎo)入。4.2 文本編輯器與代碼風(fēng)格路徑工具-選項(xiàng)-文本編輯器-C#或其他語言-代碼樣式-格式設(shè)置。這里可以定義你的代碼格式化規(guī)則大括號位置、縮進(jìn)、空格等。不要小看這個統(tǒng)一的代碼風(fēng)格是團(tuán)隊(duì)協(xié)作的基石。你可以點(diǎn)擊“生成 .editorconfig 文件”將設(shè)置保存為項(xiàng)目根目錄下的.editorconfig文件。這樣任何用VS打開此項(xiàng)目的人都會自動應(yīng)用這套風(fēng)格與.gitignore類似是保證代碼風(fēng)格一致性的利器。縮進(jìn)我推薦使用“空格”而不是“制表符”并設(shè)置為4個空格。這能保證代碼在任何編輯器、任何環(huán)境下顯示效果一致。自動格式化勾選“保存時格式化文件”和“粘貼時格式化”。這能讓你無需操心格式問題專注于邏輯。4.3 強(qiáng)大的IntelliCode與代碼片段啟用 IntelliCode如果你在安裝時勾選了它默認(rèn)是啟用的。IntelliCode基于AI能提供更智能的代碼補(bǔ)全建議將最可能用到的API排在前面。在工具-選項(xiàng)-IntelliCode里你可以查看和配置它支持的語言。善用代碼片段輸入prop然后按兩次Tab就能快速生成一個C#屬性。這是代碼片段Code Snippet的威力。你可以通過工具-代碼片段管理器查看所有內(nèi)置片段并學(xué)習(xí)其觸發(fā)詞。更高級的用法是自定義代碼片段將你項(xiàng)目中常用的模板如特定的日志語句、單元測試框架、API調(diào)用模板做成片段能極大提升重復(fù)性代碼的編寫速度。4.4 搜索與導(dǎo)航轉(zhuǎn)到全部CtrlT或Ctrl,。這是VS中最強(qiáng)大的導(dǎo)航命令沒有之一。你可以直接輸入類名、方法名、文件名甚至用駝峰匹配如輸入“gs”可能匹配到“GetString”快速跳轉(zhuǎn)到任何地方。比在解決方案資源管理器里一層層找快得多。查找所有引用ShiftF12。查看一個符號在哪些地方被使用是理清代碼依賴關(guān)系的必備操作。查看定義F12。跳轉(zhuǎn)到變量、方法或類的定義處。導(dǎo)航欄在代碼編輯器窗口的頂部有兩個下拉框分別顯示當(dāng)前類和當(dāng)前成員。這是一個快速在類內(nèi)部方法間跳轉(zhuǎn)的老牌但有效的方法。5. 第三層配置強(qiáng)化調(diào)試與診斷能力調(diào)試是開發(fā)的半壁江山好的調(diào)試設(shè)置能讓你事半功倍。5.1 調(diào)試器顯示設(shè)置路徑調(diào)試時在“自動窗口”、“局部變量”或“監(jiān)視”窗口中右鍵點(diǎn)擊一個變量。十六進(jìn)制顯示調(diào)試位操作或網(wǎng)絡(luò)協(xié)議時勾選“十六進(jìn)制顯示”非常有用。使用原始結(jié)構(gòu)對于C的STL容器如std::vector,std::map默認(rèn)的調(diào)試視圖已經(jīng)非常友好。但如果遇到自定義的復(fù)雜模板顯示混亂可以嘗試右鍵取消“使用原始結(jié)構(gòu)”或者需要自己編寫natvis文件來定制可視化效果。對于C#對象的ToString()方法結(jié)果會顯示在“值”列重寫一個清晰的ToString()能極大提升調(diào)試效率。5.2 異常設(shè)置路徑調(diào)試-窗口-異常設(shè)置。這個窗口列出了所有類型的異常。默認(rèn)情況下當(dāng)任何異常拋出時調(diào)試器都會中斷如果開啟了“僅我的代碼”可能稍有不同。但在實(shí)際開發(fā)中我們經(jīng)常需要區(qū)別對待。常用配置展開“公共語言運(yùn)行時異?!闭业侥阏谑褂玫目蚣芑驇煜嚓P(guān)的異常如System.Net.Http.HttpRequestException。如果你正在處理網(wǎng)絡(luò)請求并且希望只在請求真正失敗而非調(diào)試器認(rèn)為失敗時才中斷可以取消勾選此異常對應(yīng)的“引發(fā)時中斷”。這樣你的try-catch塊會正常捕獲并處理它而調(diào)試器不會每次都跳出來打擾你。添加自定義異常如果你有自己的異常類型可以點(diǎn)擊右上角的“添加”按鈕將其加入列表并管理中斷行為。5.3 即時窗口與診斷工具即時窗口CtrlAltI。在調(diào)試中斷時這是一個強(qiáng)大的“計算器”。你可以在這里執(zhí)行任何有效的代碼語句調(diào)用方法修改變量的值或者計算表達(dá)式。比如你可以輸入?someVariable.ToString(“X2”)來以十六進(jìn)制查看一個整型變量。診斷工具窗口調(diào)試-窗口-顯示診斷工具。這里可以實(shí)時查看應(yīng)用程序的CPU和內(nèi)存使用情況。對于性能調(diào)優(yōu)和內(nèi)存泄漏排查這是第一手的圖形化數(shù)據(jù)。你可以設(shè)置快照對比不同時間點(diǎn)的內(nèi)存堆差異精準(zhǔn)定位哪些對象沒有被釋放。5.4 符號服務(wù)器與源服務(wù)器路徑工具-選項(xiàng)-調(diào)試-符號。當(dāng)你調(diào)試第三方庫如.NET Framework本身或沒有源碼的DLL時如果加載了正確的PDB程序數(shù)據(jù)庫符號文件你就能看到堆棧跟蹤中的方法名甚至能單步進(jìn)入如果有源服務(wù)器支持。勾選“Microsoft符號服務(wù)器”這能讓你在調(diào)試時自動下載微軟官方組件的符號文件。第一次使用時會下載需要一定時間。緩存符號到此目錄建議指定一個本地目錄如C:\Symbols避免重復(fù)下載。源服務(wù)器支持對于部分開源項(xiàng)目如 .NET Runtime勾選“啟用源服務(wù)器支持”后調(diào)試器甚至可以自動下載并顯示對應(yīng)的源代碼。這是一個進(jìn)階功能在排查深層次框架問題時非常有用。注意事項(xiàng)啟用符號服務(wù)器可能會在首次調(diào)試時因下載符號而導(dǎo)致啟動變慢。如果你主要調(diào)試自己的代碼可以暫時關(guān)閉它。6. 第四層配置項(xiàng)目與生成配置管理這一部分更多是在項(xiàng)目屬性頁里設(shè)置但理解其原理并通過“屬性管理器”來批量管理是專業(yè)開發(fā)者的標(biāo)志。6.1 理解配置與平臺每個VS項(xiàng)目都有“配置”Debug/Release和“平臺”x86/x64/ARM等的組合。默認(rèn)創(chuàng)建的是Debug|Any CPU和Release|Any CPU。Debug配置定義了DEBUG編譯常量關(guān)閉了所有優(yōu)化方便調(diào)試啟用了完整的調(diào)試信息。Release配置通常不定義DEBUG開啟了編譯器優(yōu)化代碼運(yùn)行更快體積更小調(diào)試信息可能被剝離或單獨(dú)生成PDB文件。平臺Any CPU意味著編譯出的程序集在32位系統(tǒng)上以32位運(yùn)行在64位系統(tǒng)上以64位運(yùn)行。如果你的程序有明確的平臺依賴如調(diào)用特定位數(shù)的原生DLL則需要指定具體的x86或x64。6.2 關(guān)鍵項(xiàng)目屬性設(shè)置以C項(xiàng)目為例右鍵項(xiàng)目 -屬性。C/C - 常規(guī)警告等級設(shè)置為“等級3 (/W3)”或“所有警告 (/Wall)”。把警告當(dāng)錯誤看待是寫出健壯代碼的好習(xí)慣。你可以在“高級”里設(shè)置“將特定警告視為錯誤”輸入常用的警告號如4018;4244有符號/無符號不匹配、可能丟失數(shù)據(jù)。調(diào)試信息格式Debug配置下用“程序數(shù)據(jù)庫 (/Zi)”Release配置下如果想保留調(diào)試能力可以用“程序數(shù)據(jù)庫 (/Zi)”或“使得調(diào)試和發(fā)布版本不兼容 (/ZI)”編輯并繼續(xù)功能。C/C - 優(yōu)化Debug配置通常為“禁用 (/Od)”。Release配置選擇“最大化速度 (/O2)”或“最小化大小 (/O1)”。對于現(xiàn)代桌面應(yīng)用/O2是更常見的選擇。鏈接器 - 常規(guī)啟用增量鏈接Debug配置下可以開啟/INCREMENTAL能加快大型項(xiàng)目的鏈接速度。Release配置下必須關(guān)閉因?yàn)樗鼤绊懽罱K代碼的優(yōu)化。鏈接器 - 調(diào)試生成調(diào)試信息選擇“生成調(diào)試信息 (/DEBUG)”。即使在Release下生成PDB文件對于日后線上問題診斷通過崩潰轉(zhuǎn)儲文件是至關(guān)重要的。生成事件在“生成后事件”命令行中可以添加自定義命令比如將生成的DLL復(fù)制到另一個目錄或者運(yùn)行一些腳本。這是一個非常實(shí)用的自動化功能。6.3 使用屬性管理器進(jìn)行批量配置這是VS中一個被嚴(yán)重低估的功能。在“視圖” - “其他窗口” - “屬性管理器”中打開。在這里你可以看到解決方案的所有配置和平臺。你可以右鍵添加一個“新項(xiàng)目屬性表”.props文件比如CommonSettings.props。然后在這個屬性表里集中設(shè)置上面提到的那些通用屬性警告等級、優(yōu)化選項(xiàng)、包含目錄、庫目錄等。之后將這個屬性表添加到其他項(xiàng)目中。這樣所有項(xiàng)目的公共設(shè)置都在一個地方管理。如果需要修改只需改這個.props文件所有引用它的項(xiàng)目都會自動更新。這對于維護(hù)大型解決方案的配置一致性來說是必不可少的工具。7. 擴(kuò)展推薦讓VS2019如虎添翼VS的強(qiáng)大離不開豐富的擴(kuò)展生態(tài)。以下是幾款我離不開的效率神器Productivity Power Tools 2019微軟官方出品包含一系列小工具如對齊賦值號、復(fù)制引用、增強(qiáng)的滾動條等裝了就回不去。CodeMaid免費(fèi)的代碼清理和重構(gòu)工具。它可以自動整理using語句、重新排列成員、格式化代碼一鍵讓混亂的代碼文件變得整潔。它的“清理”功能是我每次提交代碼前的必備步驟。GitHub Extension for Visual Studio如果你用GitHub這個擴(kuò)展提供了比內(nèi)置Git工具更流暢的界面和操作特別是Pull Request的查看和操作。ReSharper這是一個重量級且收費(fèi)的擴(kuò)展來自JetBrains。它提供了極其強(qiáng)大的代碼分析、重構(gòu)、導(dǎo)航和代碼生成功能。它會深度改變你的VS使用習(xí)慣。如果你的機(jī)器性能足夠強(qiáng)勁因?yàn)樗容^耗資源并且預(yù)算允許ReSharper絕對是生產(chǎn)力核武器。它的“AltEnter”萬能快捷鍵幾乎能解決所有代碼問題。Visual Studio IntelliCode前面提過AI輔助補(bǔ)全微軟自家出品必裝。安裝擴(kuò)展通過“擴(kuò)展” - “管理擴(kuò)展”即可。安裝后通常需要重啟VS。8. 常見問題與排查技巧實(shí)錄即使設(shè)置得當(dāng)開發(fā)中還是會遇到各種奇怪問題。這里記錄幾個高頻問題的排查思路。8.1 IntelliSense不工作或顯示錯誤這是最常見的問題之一。清理解決方案并重建生成-清理解決方案然后生成-重新生成解決方案。這能清除舊的編譯中間文件迫使VS重新解析。關(guān)閉VS刪除解決方案的.vs隱藏文件夾和bin、obj文件夾。.vs文件夾存放了解決方案的用戶特定數(shù)據(jù)和IntelliSense緩存損壞后會導(dǎo)致各種詭異問題。刪除后重新打開解決方案VS會重建這些文件。重置設(shè)置如果問題普遍存在可以嘗試工具-導(dǎo)入和導(dǎo)出設(shè)置-重置所有設(shè)置。注意這會清空你的所有自定義設(shè)置慎用。檢查“錯誤列表”窗口有時只是一個簡單的語法錯誤或項(xiàng)目引用錯誤就會導(dǎo)致整個文件的IntelliSense失效。優(yōu)先解決所有編譯錯誤。8.2 調(diào)試時無法命中斷點(diǎn)顯示“當(dāng)前不會命中斷點(diǎn)。還沒有為該文檔加載任何符號”確認(rèn)生成的是Debug配置。檢查模塊是否加載在調(diào)試狀態(tài)下打開調(diào)試-窗口-模塊。查找你的DLL或EXE看“符號狀態(tài)”一列。如果顯示“無法查找或打開PDB文件”說明符號未加載。檢查項(xiàng)目屬性中是否生成了PDB或者路徑是否正確。檢查代碼是否優(yōu)化在Release配置下如果開啟了高強(qiáng)度優(yōu)化編譯器可能會內(nèi)聯(lián)函數(shù)或重新排列代碼導(dǎo)致斷點(diǎn)位置與實(shí)際執(zhí)行流不符。在關(guān)鍵函數(shù)前加上#pragma optimize(, off)和#pragma optimize(, on)可以臨時關(guān)閉該函數(shù)的優(yōu)化以便調(diào)試。確保源代碼是最新的如果你調(diào)試的是已部署的程序確保本地的源代碼版本與運(yùn)行的程序版本完全一致。8.3 編譯速度慢使用預(yù)編譯頭對于C將穩(wěn)定的、不常變動的頭文件如標(biāo)準(zhǔn)庫、框架頭文件放到stdafx.h或其他命名的預(yù)編譯頭文件中可以極大減少重復(fù)編譯時間。啟用并行生成工具-選項(xiàng)-項(xiàng)目和解決方案-生成并運(yùn)行。將“最大并行項(xiàng)目生成數(shù)”設(shè)置為你的CPU核心數(shù)??紤]使用增量生成對于Debug配置確?!皢⒂迷隽挎溄印笔谴蜷_的。檢查項(xiàng)目依賴在“解決方案資源管理器”中右鍵解決方案 -項(xiàng)目依賴項(xiàng)確保依賴關(guān)系正確。錯誤的依賴會導(dǎo)致不必要的順序編譯。使用更快的存儲將源代碼和編譯輸出目錄放在SSD硬盤上效果立竿見影。8.4 內(nèi)存占用過高使用輕量級解決方案加載如前所述。關(guān)閉不用的工具窗口和標(biāo)簽頁。定期重啟VS這是最簡單粗暴但有效的方法。VS長時間運(yùn)行后內(nèi)存可能無法完全釋放重啟一次能恢復(fù)流暢。檢查擴(kuò)展有些第三方擴(kuò)展可能存在內(nèi)存泄漏。可以嘗試在安全模式下啟動VSdevenv.exe /SafeMode如果不卡了說明問題很可能出在某個擴(kuò)展上然后逐一禁用排查。配置VS2019是一個持續(xù)的過程隨著你接觸的項(xiàng)目類型和技術(shù)棧變化總會有新的需求。最好的習(xí)慣是每當(dāng)你覺得“這里操作好麻煩”或者“VS怎么又卡了”的時候不要習(xí)慣性忍受而是花五分鐘去選項(xiàng)里搜一搜、網(wǎng)上查一查很可能就有一個現(xiàn)成的設(shè)置或擴(kuò)展能完美解決你的痛點(diǎn)。把這些點(diǎn)滴的優(yōu)化積累起來最終你的開發(fā)環(huán)境就會被打磨得無比順手。