VSCode打開時這幾個同樣名稱的進程分別有什麼作用?

好奇...


謝謝 @Belleve @Richard Yu 邀請,這是個非常好的問題。現有的答案都是在說 Chromium 的進程,沒毛病。Electron 使用了 Chromium 的 multi process 機制,不同的 page 運行在不同的 renderer process 中。

樓主的圖片里,有四個進程,難道說 vscode 後台跑了四個tab?我們不妨看看這些進程都是幹什麼的。

假設我們在 macOS/Linux 上,在 VS Code Insiders 運行的時候,在 terminal 里跑個命令

ps aux|grep Insiders

我們會得到以下結果(省去了冗餘的跟本題無關的數據)

.../Contents/MacOS/Electron
.../Code - Insiders Helper --type=gpu-process
.../Code - Insiders Helper --type=renderer .../Electron Framework.framework/Resources/crashpad_handler
.../Code - Insiders Helper --type=renderer
.../Code - Insiders Helper .../app/out/bootstrap --type=extensionHost
.../Code - Insiders Helper .../app/out/bootstrap --type=watcherService
.../Code - Insiders Helper .../app/out/bootstrap --type=searchService
.../Code - Insiders Helper .../extensions/eg2.tslint-0.15.0/node_modules/vscode-languageclient/lib/utils/electronForkStart .../extensions/eg2.tslint-0.15.0/server/server.js --node-ipc
.../Code - Insiders Helper .../app/extensions/typescript/out/utils/electronForkStart .../app/extensions/node_modules/typescript/lib/tsserver.js
.../Code - Insiders Helper .../app/extensions/node_modules/typescript/lib/typingsInstaller.js
.../Code - Insiders Helper .../extensions/dbaeumer.vscode-eslint-1.2.11/node_modules/vscode-languageclient/lib/utils/electronForkStart

大家可以看到

  • main process
  • gpu process 你是可以禁用的
  • renderer process,渲染頁面
  • crash reporter
  • extension host,所有的extension單獨在一個process里
  • file watcher
  • search,我們使用了 rigrep
  • 幾個 extension 自己的 process(ts,tslint,eslint)

我想在 Windows 的 Task Manager 上查看以上信息也是很方便的。同學你離真相就一步之遙,另外這鍋 Chromium 不背。


不光VSCode和Chromium,Edge也是這樣。不同標籤有可能屬於不同進程。這樣一個卡死了,另一個還可以搶救一下。


說來瀏覽器多進程化也快十年了,都有代溝了(滑稽


VSCode 基於 Electron,而 Electron 又使用 Chromium 做界面,所以這幾個進程大體來講是和 Chromium 一樣的。


多線程對應多進程,目的是縮減頁面響應時間;


雖然我不懂 不過大概跟瀏覽器有多個進程差不多?


所以我之前問過關於微信和Github類似的問題


推薦閱讀:

vim或者emacs有什麼插件可以像ide那樣分析語法樹的嗎?
OSX 上免費的MarkDown編輯器,大家一般用的什麼?
在 Linux 下,大家都喜歡用什麼編輯器?
為什麼這麼多人喜歡使用 Vim 或 Emacs?
用mbp文本編輯器寫出來的html在safari和谷歌瀏覽器顯示不同?

TAG:文本編輯器 | 微軟Microsoft | 開源項目 | VisualStudioCode |