今天要說的是一個困擾我好幾個月的問題,Visual Studio Code(下文簡稱VSCode)在使用中忽然增高,風扇開始狂轉,溫度驟增,影響心情的故障緣由。node
其實,不管是Windows仍是OSX,不少人可能或多或少都遇到過VSCode忽然就很差使了,我就遇到過好屢次疑難雜症,折騰好久才弄出來,好比下面三點:git
我使用的是黑蘋果,固然這個與CPU佔用率增高並沒有關係,經過code --status
查看一些基本信息以下:github
P750TM:~ whidy$ code --status Version: Code 1.30.2 (61122f88f0bf01e2ac16bdb9e1bc4571755f5bd8, 2019-01-07T22:48:31.260Z) OS Version: Darwin x64 17.7.0 CPUs: Intel(R) Core(TM) i5-8600K CPU @ 3.60GHz (6 x 3600) Memory (System): 16.00GB (5.22GB free) Load (avg): 2, 2, 2 VM: 0% Screen Reader: no Process Argv: --inspect-extensions=9993 GPU Status: 2d_canvas: enabled checker_imaging: disabled_off flash_3d: enabled flash_stage3d: enabled flash_stage3d_baseline: enabled gpu_compositing: enabled multiple_raster_threads: enabled_on native_gpu_memory_buffers: enabled rasterization: unavailable_software video_decode: enabled video_encode: enabled webgl: enabled webgl2: enabled CPU % Mem MB PID Process 0 98 1775 code main 0 49 1776 gpu-process 0 229 1777 window (settings.json — mpa-stat-sdk) 0 0 1780 /bin/bash -l 0 115 1783 extensionHost 0 82 1787 /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper --nolazy --inspect=10785 /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/jsonServerMain --node-ipc --clientProcessId=1783 0 49 1784 watcherService 0 49 1789 searchService 0 33 1785 utility 0 82 1817 shared-process 0 311 1830 window (ald-stat.js — one-plus-sport) 0 49 1831 watcherService 0 98 1832 extensionHost 4 66 1870 electron_node eslintServer.js 0 131 1871 electron_node tsserver.js 0 66 1879 electron_node typingsInstaller.js typesMap.js 0 49 1835 searchService Workspace Stats: | Window (ald-stat.js — one-plus-sport) | Window (settings.json — mpa-stat-sdk) | Folder (one-plus-sport): 273 files | File types: js(75) json(58) wxss(57) wxml(56) png(21) md(2) | gitignore(1) xlsx(1) jpg(1) zip(1) | Conf files: | Folder (mpa-stat-sdk): 21 files | File types: js(13) md(3) json(2) zip(2) gitignore(1) | Conf files: gulp.js(1) package.json(1)
先來看看正常狀況下和非正常狀況的運行狀況對比圖:web
上圖爲正常狀況下的截圖json
上圖爲異常狀況下的截圖gulp
這個問題真的令我很苦惱,我這兩張截圖期間絕對沒有作任何可能會產生高計算需求的工做,可是正常的操做怎麼會出現這種狀況呢。canvas
因而進行了大量的搜索,百度就不用看了,屎同樣的結果:windows
前5篇內容徹底一致,結論:"search.followSymlinks":true
,在我這一點用也沒用。順便吐槽,我徹底不理解,在中國尤爲是CSDN,爲何一個簡單的小問題,一大堆人轉載,徹底同樣的內容,若是真的是神通常的技巧,敢不敢多寫一點,爲何這樣能解決問題,出現故障的緣由呢,無腦抄襲就算了,作筆記請使用本身的筆記本,好比有道雲筆記,印象筆記很差嗎,難道沒人知道你是抄的?簡直浪費搜索時間!垃圾!bash
吐槽完畢,該用google了,實際上,我一開始就沒用百度,只是寫這篇文章,擔憂有人遇到過這樣的問題,寫過相同的解決方案,說我是抄來的。就索性百度搜一下。用谷歌天然用英文,雖然我英語很渣,可是谷歌懂我。只須要幾個關鍵詞:app
不管是微軟官方的issue查,仍是stackoverflow查,總能有很大的收穫,可是,我這個問題比較特殊,我嘗試過最基本的兩種處理辦法:
settings.json
文件然而都很差使。可憐我英文也不是特別好,有可能有些有用的信息被我忽略掉了。
這裏補充一下,其實大部分緣由,能夠經過官方提供的自排除方案來檢查 Performance Issues,我很推薦遇到CPU佔用率太高的狀況下先看看這篇文章。
不過也不是全無收穫,至少開頭提到的三個問題,前兩個查出來了。
第一個問題是插件Auto Rename Tag
形成的,這個至少在一年前是很是流行的,我本身也以爲很好用,就一直裝了,徹底想不到這個簡單的功能竟然會形成VSCode某些功能異常,去插件主頁看看,做者也不更新維護了,插件評價頁面全是一星,可見目前已是垃圾插件了查看評論,不過過年不少無腦轉載的還在推薦這個插件,因此爲了不你們入坑,建議不要使用Auto Rename Tag。
第二個問題也是插件問題,就是Markdown All in One
這個插件致使縮進功能很差使,緣由我也不知道,其實這個問題並不嚴重,有強烈依賴改插件的朋友仍是能夠繼續使用,我也很推薦這個插件寫markdow,有些仍是挺便捷的,不過我是刪了哈哈哈,看我的意願了~
好了第三個問題纔是最重要的,我反覆觀察了好久,作了大量測試和查閱文檔,終於得出結論:
我發現切換窗口後出現異常就搜索關鍵詞two/multi vscode switch cause a high cpu useage
終於找到了一絲絲線索,仔細閱讀了下面幾篇:
我終於,發現了一個問題,我切換VSCode的窗口的方式有問題!!!我是用了羅技鼠標的快捷鍵功能致使,如圖:
啊,個人天啊!我反覆嘗試,在多個窗口,直接用鍵盤的Cmd + `
來切換內部應用窗口,妥妥的一點毛病都沒有。
不少狀況下VSCode功能異常都是插件引發的,嘗試關閉全部插件來檢查,建議閱讀Performance Issues。
其次是第三方Switcher應用切換VSCode窗口會形成異常!好比經常使用的鼠標功能鍵!
啊,坑了我好多個月,反覆重裝VSCode和系統都無法解決的毛病終於解決了。。。之後只能用Cmd + `
來切換了~