VSCode 現(xiàn)內(nèi)存泄漏 BUG,官方處理方式引社區(qū)不滿
近日,有開發(fā)者提交了一個(gè) VSCode 內(nèi)存泄露的 issues,該問題導(dǎo)致在某些情況下使用 VSCode 會(huì)使內(nèi)存使用率攀升。令人意外的是,VSCode 官方卻表示不打算解決此問題,由此在社區(qū)引發(fā)了爭(zhēng)議。
今年十月,有一名開發(fā)者發(fā)現(xiàn)了 VSCode 中存在內(nèi)存泄漏的問題,并在官方倉庫的 issues 中提交了這個(gè)問題:
1. 準(zhǔn)備一個(gè)大文本文件(Citylots.json為〜190MB):
- wget "https://github.com/zemirco/sf-city-lots-json/blob/master/citylots.json"
- cp citylots.json evenlarger.json
- cat citylots.json >> evenlarger.json
- cat citylots.json >> evenlarger.json
3. 滾動(dòng)。
4. 關(guān)閉文件。
5. 通過“ Process Explorer”觀察內(nèi)存使用情況。
6. 即使大約 30 分鐘后,內(nèi)存使用率仍然很高:
即使禁用所有擴(kuò)展后依然會(huì)發(fā)生此問題。
隨后,這名開發(fā)者又注意到這個(gè)內(nèi)存泄漏的 BUG 實(shí)際上與大文件無關(guān),他通過打開幾個(gè) 5-10MB 的文本文件重現(xiàn)了這一問題,即使關(guān)閉所有編輯器并等待幾分鐘后,也無需進(jìn)行任何操作即可看到內(nèi)存使用率攀升。該開發(fā)者表示,自己遇到這個(gè)問題時(shí)唯一的解決辦法是一旦發(fā)現(xiàn)系統(tǒng)內(nèi)存不足,就只能重新加載 VSCode 窗口,非常麻煩。
而令人意想不到的是,VSCode 官方對(duì)此問題的回應(yīng)竟然是置之不理:
我們已關(guān)閉此問題,因?yàn)槲覀儾淮蛩阍诳深A(yù)見的將來解決此問題。您可以在此處找到有關(guān)我們決策過程的更多詳細(xì)信息。如果您不同意并認(rèn)為此問題至關(guān)重要:我們很樂意傾聽并重新考慮。
VSCode 官方的回復(fù)很快引發(fā)了爭(zhēng)議,在這名開發(fā)者提交的 issue 下,有很多用戶跟帖表示自己遇到了同樣的問題,還有的甚至在一年前就遇到了類似的問題,并認(rèn)為官方這樣的做法對(duì)社區(qū)用戶來說是不負(fù)責(zé)任的表現(xiàn)。
時(shí)隔近兩個(gè)月,導(dǎo)致這一問題的 VSCode 維護(hù)者才終于修復(fù)了這一問題:
“ 首先,很抱歉出現(xiàn)了這一錯(cuò)誤,我們已經(jīng)添加了修復(fù)程序。以下是有關(guān)錯(cuò)誤和修復(fù)的詳細(xì)信息:
我們有基于文件的推薦功能(FileBasedRecommendations),將可監(jiān)聽文本模型添加到了編輯器中,并根據(jù)文件擴(kuò)展名和語言推薦擴(kuò)展名。最近,我對(duì)此功能進(jìn)行了改進(jìn),以在用戶更改文件的語言時(shí)提供檢查建議(更多詳細(xì)信息,在此處#102823)。為此,我需要設(shè)置監(jiān)聽器監(jiān)聽文本模型的語言更改,我原本僅在處置FileBasedRecommendations類時(shí)才調(diào)用此監(jiān)聽器,而導(dǎo)致內(nèi)存泄漏的原因正是因?yàn)樵谔幹猛昴P秃蟊O(jiān)聽器仍在工作。
我們通過在處置模型FileBasedRecommendations(onWillDispose)時(shí)處置模型監(jiān)聽器的 has 來解決此問題。”
issues 詳情:https://github.com/microsoft/vscode/issues/107999
本文轉(zhuǎn)自O(shè)SCHINA。
本文標(biāo)題:VSCode 現(xiàn)內(nèi)存泄漏 BUG,官方處理方式引社區(qū)不滿
本文地址:https://www.oschina.net/news/121783/vscode-memory-leakage-issues