当前位置: 首页 > 科技观察

VSCode存在内存泄漏bug,官方处理方式引发社区不满

时间:2023-03-12 12:29:24 科技观察

近日,有开发者提交了关于VSCode内存泄漏的issue。此问题导致在某些情况下使用VSCode会增加内存占用。令人意外的是,VSCode官方表示并不打算解决这个问题,引发了社区的争议。今年10月,有开发者发现VSCode存在内存泄漏问题,并在官方仓库的issues中提交了这个问题:1.准备一个大文本文件(Citylots.json~190MB):wget》https://github.com/zemirco/sf-city-lots-json/blob/master/citylots.json"cpcitylots.jsonevenlarger.jsoncatcitylots.json>>evenlarger.jsoncatcitylots.json>>evenlarger.json3.滚动。4.关闭文件。5.通过“ProcessExplorer”观察内存使用情况。6.大约30分钟后内存使用率仍然很高:即使禁用所有扩展后,此问题仍然存在。后来开发者发现内存泄漏的bug其实与大文件无关,他通过打开几个5-10MB的文本文件重现了这个问题,即使关闭所有编辑器等了几分钟,也没有必要做任何可以看到内存使用率攀升的东西。开发者表示,遇到这个问题唯一的解决办法就是一旦发现系统内存不足就重新加载VSCode窗口,非常麻烦。令人意外的是,VSCode官方对这个问题的回应竟然是无视:我们已经关闭了这个问题,因为我们不打算在可预见的未来解决这个问题。您可以在此处找到有关我们决策过程的更多详细信息。如果您不同意并认为这个问题很关键:我们很乐意倾听并重新考虑。VSCode的官方回复很快引起了争议。在该开发者提交的issue下,有不少用户反映遇到过同样的问题,甚至有人在一年前就遇到过类似问题,认为官方这样的做法是对社区用户的不负责任。将近两个月后,导致此问题的VSCode维护者终于修复了它:“首先,对这个错误感到抱歉,我们已经添加了修复程序。以下是有关错误和修复程序的详细信息:我们有FileBasedRecommendations,它添加??了一个编辑器的可听文本模型,并根据文件扩展名和语言推荐扩展名。最近,我改进了这个功能,以便当用户在检查推荐时更改文件的语言(更多细节在这里#102823)。为此,我需要设置一个监听器来监听文本模型的语言变化,我原来是在FileBasedRecommendations类被dispose的时候才调用的,造成内存泄露的原因正是因为model被dispose后listener还在工作,我们解决了通过在处理模型FileBasedRecommendations(onWillDispose)时处理模型侦听器的has来解决这个问题。”Issues详情:https://github.com/microsoft/vscode/issues/107999本文转自OSCHINA。本文标题:VSCode现存在内存泄漏BUG,官方处理方式引社区不满。本文地址:https://www.oschina.net/news/121783/vscode-memory-leakage-issues