我有一台台式机和一台运行 Arch Linux 的笔记本电脑。两者均采用 Intel i3 处理器,台式机采用第三代 i3,笔记本电脑则采用第六代 i3。两者都有 4 GB RAM + 4 GiB ZRAM。
但我发现桌面版要快得多。桌面处理器确实更快,但我的担忧有点不同。虽然笔记本电脑和台式机具有相同的进程、相同的内核参数、相同版本的编译器,但台式机使用的 RAM 比笔记本电脑少约 200 MB。看一下 gnome-system-monitor:
通过比较 xfdesktop 与 xfdesktop、whiskermenu 与whiskermenu、nm-applet 与 nm-applet 等,我注意到类似的进程在笔记本电脑上使用的内存比台式机更多。我的第一个想法是,因为台式机运行 1366x768 分辨率显示屏,而笔记本电脑运行 1920x1080 HDMI(笔记本电脑屏幕设置为关闭,HDMI 打开)。因此,我将笔记本电脑的分辨率更改为比台式机更小,然后重新启动,发现报告的内存使用情况与之前的相同。
据 gnome-system-monitor 报告,台式机以 670 MiB 启动,但笔记本电脑以 880 MiB 启动。两个系统启用的 systemd 服务也相同。
我还启动了一个 ruby 解释器来查看台式机是否比笔记本电脑使用更多的内存,我发现笔记本电脑和台式机使用相同的程序消耗相同的内存量。
这两个系统唯一不同的是使用-march=native -mtune=native
选项编译的内核。
这是来自的输出cat /proc/version
笔记本电脑
Linux version 5.8.5-xanmod1-1-xanmod (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Wed, 02 Sep 2020 20:22:18 +0000
桌面
Linux version 5.8.5-xanmod1-1-xanmod (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Wed, 02 Sep 2020 17:49:52 +0000
内核在编译期间具有相同的配置文件。而且我认为内存差异不仅仅在于内核,因为两个系统都是 64 位,而且我之前使用过Arch 存储库中的linux
和linux-zen
软件包 - 即使使用相同的内核,我也看到了这种差异。
是什么导致笔记本电脑和台式机上的进程内存存在如此大的差异?
编辑1:可能的解决方案:
我不知道为什么,但在我的笔记本电脑上,我首先更改了主题(XFCE4 设置中的外观主题)。然后我又切换回我正在使用的那个。我重新启动(可能注销也可以工作),现在即使我使用相同的主题,内存使用量也减少了。
编辑2:可能的解决方案:
不,我在编辑 1 中错了。在更改主题之前我又做了一步。
我使用 Papirus 图标主题。
我有两份 Papirus 图标主题副本,/home/sourav/.icons/
目录中的最新版本和 /usr/share/icons
.
如果我从 中删除 Papirus /usr/share/icons
,则重新启动后内存使用量为 700 MiB。如果我再次复制/home/sourav/.icons/Papirus
到/usr/share/icons
然后重新启动,内存使用量为 960 MiB。对于这两种情况,我都有一个使用gtk-update-icon-cache
.
我以前不知道不同位置的图标主题的类似副本可能会多占用 150 MB 的内存!
这是从 /usr/share/icons 中删除相同图标的一个副本后笔记本电脑上 gnome-system-monitor 的屏幕截图:
它使用的内存比之前的屏幕截图要少得多。