Память — раздел в таблице процессов top/htop, отражающий структуру адресного пространства процесса и фактическое использование физической памяти. Значения формируются на основе данных /proc/[pid]/statm, /proc/[pid]/status и таблиц отображения памяти (/proc/[pid]/smaps).

VIRT (virtual memory size) — общий объём виртуального адресного пространства процесса.

  • Включает все отображённые области: код, данные, разделяемые библиотеки, mmap-файлы, анонимную память, выделенную, но ещё не использованную память, а также swap.
  • Это не объём реально занятой RAM.
  • Может значительно превышать физическую память из-за lazy allocation и overcommit.
  • Используется для понимания масштаба адресного пространства процесса.

RES (resident set size) — объём физической памяти (RAM), фактически занимаемой процессом в данный момент.

  • Включает только страницы, находящиеся в оперативной памяти.
  • Не включает страницы, выгруженные в swap.
  • Состоит из private и shared страниц.
  • Один из ключевых показателей фактического потребления памяти.

SHR (shared memory) — объём разделяемой памяти в составе RES.

  • Обычно включает страницы разделяемых библиотек и shared memory сегментов.
  • Эти страницы могут учитываться в RES нескольких процессов одновременно.
  • Не означает, что память полностью «разделена» или что она будет освобождена при завершении процесса.
  • Используется для приблизительной оценки доли совместно используемой памяти.

%MEM — доля физической памяти, используемая процессом.

  • Рассчитывается как отношение RES к общему объёму доступной RAM.
  • Показывает относительную нагрузку на память.
  • Удобен для быстрого выявления процессов с наибольшим потреблением RAM.

CODE — объём памяти, занятый исполняемым кодом процесса (text segment).

  • Обычно включает сегмент .text бинарного файла и загруженных библиотек.
  • В основном read-only и часто разделяемый между процессами.
  • Обычно стабилен после запуска процесса.

DATA — объём памяти, занятый данными процесса.

  • Включает heap, глобальные переменные и анонимные отображения.
  • Основной источник роста памяти при выполнении.
  • Может увеличиваться при динамическом выделении (malloc, new).

SWAP (в htop) — объём памяти процесса, выгруженный в swap.

  • Отражает страницы, вытесненные из RAM.
  • Рост значения указывает на давление по памяти.
  • Прямо влияет на производительность из-за задержек ввода-вывода.

Эти поля используются для анализа memory-bound процессов, диагностики утечек памяти, оценки давления на RAM и понимания структуры адресного пространства процесса.