为什么一个应用程序有多个进程并消耗那么多资源

为什么一个应用程序有多个进程并消耗那么多资源

在此处输入图片描述 如截图 ( htop) 所示,sublime_3 应用程序有多个进程,这是为什么呢?我只打开了 1 个带有多个选项卡的应用程序。

除此之外,为什么这些进程占用了这么多资源(每个进程9.8G虚拟内存)?我用sublime打开的文件都是普通的文本文件,不大,每个文件最多300行。

这基本上导致我的桌面冻结。

答案1

不,那只是同一进程的多个线程 - 它们都共享相同的内存。按下可Shift+H切换显示非主线程。(您可能还想按下F2htop,然后在“显示选项”下启用“显示自定义线程名称”以及“以不同颜色显示线程”。)

大量的“VIRT”(虚拟内存)是完全正常的。这只是地址范围该过程的大部分内存由“按需”区域(只要为空白,就不会使用任何 RAM)或内存映射文件(存储在磁盘上)组成。某些运行时会比其他运行时预先映射更多的内存(尤其是 Web 浏览器将其用作安全机制),但这只会保留地址范围,而不会在需要之前消耗实际 RAM。

相反,您应该关注“RES”列,它表示 RAM 的数量实际上进程正在使用。在你的图片中,Sublime Text 的实际内存使用量是6486 MB(6.4 GB)(再次强调,您的图片显示的是线程,因此所有项目“仅”为 1x6486 MB,而不是 12x6486。)

话虽如此,我其实不知道为什么Sublime Text 需要如此大的内存(6G 还是很多)。但似乎很多人也有同样的问题。论坛帖子中一个非常常见的原因似乎是您的主目录中有一个 Git 存储库(即 ~/.git),因此您应该检查是否有该存储库。您还可以从终端启动 sublime 并观察它可能输出的可疑消息。

相关内容