Eu não usaria nenhum dos dois. No exemplo acima, VIRT é a quantidade de memória virtual que o processo requer, RES é a quantidade residente específica do processo de memória, SHR é a quantidade de memória compartilhada entre dois ou mais processos. Portanto, é um pouco difícil resolver a quantidade básica de memória usada no sistema usando o topo.
Você pode usar as informações do cabeçalho e fazer:
base-memory-use = used - buffers - cached
Buffers e memória cache estão mudando dinamicamente. Basicamente, um sistema Linux tenta usar toda a memória disponível para tornar o sistema mais rápido. A memória sobressalente é usada para buffers e cache, mas quando os processos precisam dessa memória, essas áreas são reduzidas conforme necessário.