在带有 Gnome 3.14.1 的 Debian Jessie 64 位中,系统监视器显示evolution-calendar-factory
进程正在使用 1.1 GiB,并且evolution-alarm-notify
正在使用 826.6 MiB 的虚拟内存。我不使用日历或闹钟,所以这不是有点不合目的吗?几乎 2 GiB 的内存(甚至是虚拟内存)到底是用来做什么的?我怎样才能降低这个与使用量成正比(即几乎没有)。实际上,我唯一的“日历用途”是当我单击顶部栏中的日期时弹出的小日历,并且需要浏览几个月以查看附近的某个日期是/将是一周中的哪一天。考虑到我什至无法浏览全年(只能逐月浏览),这似乎是我见过的最大的内存浪费。
当我单击顶部栏中的日期,然后选择“打开日历”时,我会看到一个欢迎屏幕,其中显示:“欢迎使用 Evolution。接下来的几个屏幕将允许 Evolution 连接到您的电子邮件帐户,并从其他应用程序导入文件。”这意味着 Evolution 尚未连接到任何东西,那么这 2 GiB 内存有什么用呢?
另一个相关问题:所有这些虚拟内存位于哪里(gnome-shell
并且firefox-esr
正在使用另一个 3.2 GiB),因为我的交换使用量为 0(零)字节?
答案1
进程的虚拟大小或 vsz 不是物理内存使用量。
虚拟内存可以被分配的空间和不被使用的物理空间。也可以是映射的已由磁盘支持的文件。 64 位机器应该能够寻址 256TiB 的虚拟空间。在 32 位机器上,当进程尝试分配 > 2GB 的空间而无需PAE当有可能达到可寻址限制时。
与 Windows 不同,术语“虚拟内存”并不是指活动内存分页到磁盘的区域。这称为交换空间。
如果您想要更接近每个进程的实际物理内存使用情况,请查看中的 PSS 指标/proc/${pid}/smaps
占用共享内存。
awk '/^Pss:/ { total += $2 } END{ print total }' /proc/*/smaps