为什么 neofetch 和 free (RAM) 输出存在差异?

为什么 neofetch 和 free (RAM) 输出存在差异?
wadewayne@Cheetah:~$ neofetch
MMMMMMMMMMMMMMMMMMMMMMMMMmds+.        wadewayne@Cheetah 
MMm----::-://////////////oymNMd+`     ----------------- 
MMd      /++                -sNMd:    OS: Linux Mint 19.3 Tricia x86_64 
MMNso/`  dMM    `.::-. .-::.` .hMN:   Host: Inspiron 15-3567 
ddddMMh  dMM   :hNMNMNhNMNMNh: `NMm   Kernel: 5.4.0-77-generic 
    NMm  dMM  .NMN/-+MMM+-/NMN` dMM   Uptime: 9 mins 
    NMm  dMM  -MMm  `MMM   dMM. dMM   Packages: 3130 
    NMm  dMM  -MMm  `MMM   dMM. dMM   Shell: bash 4.4.20 
    NMm  dMM  .mmd  `mmm   yMM. dMM   Resolution: 1366x768 
    NMm  dMM`  ..`   ...   ydm. dMM   WM: i3 
    hMM- +MMd/-------...-:sdds  dMM   Theme: Arc-Dark [GTK2/3] 
    -NMm- :hNMNNNmdddddddddy/`  dMM   Icons: Pop [GTK2/3] 
     -dMNs-``-::::-------.``    dMM   Terminal: terminator 
      `/dMNmy+/:-------------:/yMMM   CPU: Intel i3-6006U (4) @ 2.000GHz 
         ./ydNMMMMMMMMMMMMMMMMMMMMM   GPU: Intel HD Graphics 520 
            .MMMMMMMMMMMMMMMMMMM      Memory: 367MiB / 3801MiB 

                                                              


wadewayne@Cheetah:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        325M        2.3G         39M        1.1G        3.1G
Swap:          521M          0B        521M

截屏

你好。我不明白为什么neofetchfree -h输出不同的 RAM 使用结果。哪个更准确?

答案1

neofetch将使用的内存计算为

MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable

Neofetch 常见问题解答了解更多信息。

free将使用的内存计算为

used = total - free - buffers - cache

所以区别是 neofetch 认为共享内存(tmpfs)已使用(缓存free缓存+SReclaimableneofetch)。看免费联机帮助页有关自由输出中的列的更多信息。

如果你添加用过的共享free输出中您得到 364 MiB,因此差异仅为 3 MiB,这可以归因于 RAM 使用或舍入的一些小变化。

相关内容