Henry Asked: 2019-07-11 10:11:45 +0800 CST2019-07-11 10:11:45 +0800 CST 2019-07-11 10:11:45 +0800 CST 为什么一个应用程序有多个进程并消耗这么多资源 772 如截图(htop)所示,sublime_3应用程序有多个进程,这是为什么呢?我只打开了 1 个带有多个选项卡的应用程序。 除此之外,为什么进程占用这么多资源(每个进程 9.8G 虚拟内存)?我用sublime打开的文件都是普通的文本文件,不大,每个文件最多300行。 这基本上会导致我的桌面冻结。 linux process 1 个回答 Voted Best Answer user1686 2019-07-11T10:29:52+08:002019-07-11T10:29:52+08:00 不,那只是同一个进程的多个线程——它们都共享同一个内存。按下Shift+H以切换显示非主线程。(您可能还想F2在 htop 中按,然后在“显示选项”下启用“显示自定义线程名称”和“以不同颜色显示线程”。) 大量的“VIRT”——虚拟内存——是完全正常的。这只是该进程的地址范围,其中大部分由“按需”区域(不使用任何 RAM,只要它们是空白的)或内存映射文件(存储在磁盘上)组成。某些运行时比其他运行时预先映射更多内存(尤其是 Web 浏览器将其用作安全机制),但这只是保留地址范围并且在需要之前不会消耗实际 RAM。 相反,您应该关注“RES”列,它表示进程实际使用的 RAM 量。在您的图片中,Sublime Text 的实际内存使用量为6486 MB (6.4 GB)。(同样,您的图片显示线程,因此所有项目“仅”为 1x6486 MB,而不是 12x6486。) 话虽如此,我实际上并不知道为什么Sublime Text 需要这么大的内存(6G 还是很多)。但似乎很多其他人也有同样的问题。论坛帖子中一个很常见的原因似乎是在您的 homedir 上有一个 Git 存储库(即 ~/.git),所以您应该检查是否有那个。您还可以从终端启动 sublime 并观察它可能输出的可疑消息。
不,那只是同一个进程的多个线程——它们都共享同一个内存。按下Shift+H以切换显示非主线程。(您可能还想F2在 htop 中按,然后在“显示选项”下启用“显示自定义线程名称”和“以不同颜色显示线程”。)
大量的“VIRT”——虚拟内存——是完全正常的。这只是该进程的地址范围,其中大部分由“按需”区域(不使用任何 RAM,只要它们是空白的)或内存映射文件(存储在磁盘上)组成。某些运行时比其他运行时预先映射更多内存(尤其是 Web 浏览器将其用作安全机制),但这只是保留地址范围并且在需要之前不会消耗实际 RAM。
相反,您应该关注“RES”列,它表示进程实际使用的 RAM 量。在您的图片中,Sublime Text 的实际内存使用量为6486 MB (6.4 GB)。(同样,您的图片显示线程,因此所有项目“仅”为 1x6486 MB,而不是 12x6486。)
话虽如此,我实际上并不知道为什么Sublime Text 需要这么大的内存(6G 还是很多)。但似乎很多其他人也有同样的问题。论坛帖子中一个很常见的原因似乎是在您的 homedir 上有一个 Git 存储库(即 ~/.git),所以您应该检查是否有那个。您还可以从终端启动 sublime 并观察它可能输出的可疑消息。