Visual Studio Code使用中CPU佔用率異常暴增太高緣由

今天要說的是一個困擾我好幾個月的問題,Visual Studio Code(下文簡稱VSCode)在使用中忽然增高,風扇開始狂轉,溫度驟增,影響心情的故障緣由。node

其實,不管是Windows仍是OSX,不少人可能或多或少都遇到過VSCode忽然就很差使了,我就遇到過好屢次疑難雜症,折騰好久才弄出來,好比下面三點:git

  1. tab鍵忽然就很差使了,卡頓好久或者壓根沒法縮進,而且sidebar的git那塊功能完全失效!
  2. 寫Markdown文檔的時候,tab鍵的縮進只能向右,不能收回。。。這真是奇葩。
  3. 使用中莫名其妙的風扇就響了起來,看看進程和溫度,CPU滿載執行,徹底不知道怎麼回事,這也是本次要專門提到的問題。

系統使用環境及VSCode狀態檢測

我使用的是黑蘋果,固然這個與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查,總能有很大的收穫,可是,我這個問題比較特殊,我嘗試過最基本的兩種處理辦法:

  1. 屏蔽全部插件測試
  2. 重置自定義的settings.json文件

然而都很差使。可憐我英文也不是特別好,有可能有些有用的信息被我忽略掉了。

這裏補充一下,其實大部分緣由,能夠經過官方提供的自排除方案來檢查 Performance Issues,我很推薦遇到CPU佔用率太高的狀況下先看看這篇文章。

不過也不是全無收穫,至少開頭提到的三個問題,前兩個查出來了。

第一個問題是插件Auto Rename Tag形成的,這個至少在一年前是很是流行的,我本身也以爲很好用,就一直裝了,徹底想不到這個簡單的功能竟然會形成VSCode某些功能異常,去插件主頁看看,做者也不更新維護了,插件評價頁面全是一星,可見目前已是垃圾插件了查看評論,不過過年不少無腦轉載的還在推薦這個插件,因此爲了不你們入坑,建議不要使用Auto Rename Tag

第二個問題也是插件問題,就是Markdown All in One這個插件致使縮進功能很差使,緣由我也不知道,其實這個問題並不嚴重,有強烈依賴改插件的朋友仍是能夠繼續使用,我也很推薦這個插件寫markdow,有些仍是挺便捷的,不過我是刪了哈哈哈,看我的意願了~

好了第三個問題纔是最重要的,我反覆觀察了好久,作了大量測試和查閱文檔,終於得出結論:

  1. 當且僅當VSCode的窗口大於1個的時候,纔會出現該現象
  2. 出現異常常常出如今切換不一樣窗口以後發生
  3. 我發現切換窗口後出現異常就搜索關鍵詞two/multi vscode switch cause a high cpu useage終於找到了一絲絲線索,仔細閱讀了下面幾篇:

我終於,發現了一個問題,我切換VSCode的窗口的方式有問題!!!我是用了羅技鼠標的快捷鍵功能致使,如圖:

羅技鼠標設置界面

羅技鼠標設置界面

啊,個人天啊!我反覆嘗試,在多個窗口,直接用鍵盤的Cmd + `來切換內部應用窗口,妥妥的一點毛病都沒有。

結論

不少狀況下VSCode功能異常都是插件引發的,嘗試關閉全部插件來檢查,建議閱讀Performance Issues

其次是第三方Switcher應用切換VSCode窗口會形成異常!好比經常使用的鼠標功能鍵!

啊,坑了我好多個月,反覆重裝VSCode和系統都無法解決的毛病終於解決了。。。之後只能用Cmd + `來切換了~

相關文章
相關標籤/搜索