Что означает столбец ДАННЫЕ в TOP?

Что означает столбец ДАННЫЕ в TOP?

Я пытаюсь выяснить значения всех различных классификаций памяти, таких как VIRT, RES, SHR и DATA. Хотя я в целом понимаю первые 3, я понятия не имею, что означает столбец DATA, кроме его официального определения как DATA = Data+Stack size (kb). Как это связано с другими 3 классификациями памяти?

решение1

В соответствии сhttps://techtalk.intersec.com/2013/07/memory-part-2-understanding-process-memory/:

Это поле вычисляется ядром как разница между двумя переменными: total_vm, что то же самое, что VIRT и shared_vm. shared_vm в чем-то похож на SHR в том, что он разделяет определение разделяемой памяти, но вместо того, чтобы учитывать только резидентную часть, он содержит сумму всей адресованной файловой памяти. Более того, подсчет выполняется на уровне отображения, а не на первой странице, поэтому shared_vm не обладает той же тонкостью, что и SHR для измененной частной файловой памяти. Как следствие, shared_vm является суммой квадрантов 2, 3 и 4. Это означает, что разница между total_vm и shared_vm в точности равна содержимому квадранта 1.

Столбец DATA содержит объем зарезервированной частной анонимной памяти. По определению, частная анонимная память — это память, которая специфична для программы и хранит ее данные. Она может быть разделена только путем разветвления в режиме копирования при записи. Она включает (но не ограничивается) стеки и кучу2. Этот столбец не содержит никакой информации о том, сколько памяти фактически используется программой, он просто сообщает нам, что программа зарезервировала некоторый объем памяти, однако эта память может оставаться нетронутой в течение длительного времени.

решение2

Из страниц руководства:

 s: DATA  --  Data+Stack size (kb)
 The amount of physical memory devoted to other than executable code, also known  as
 the ’data resident set’ size or DRS.

Другими словами, память используется для хранения переменных данных ваших программ (не исполняемых программ).

Допустим, что и Массив в памяти — это переменные данные.

Также stack size, как говорят слова, размер вашего стека, который система использует для выполнения конкретной программы. Стек — это место, где система хранит трассировку функций, которые вызывает ваша программа/процесс. Имейте в виду, что эта метрика говорит о размере стека, а не о самом стеке.

Подробнее о других колонках памяти, которые вы упомянулиздесь

решение3

Из страницы руководстваздесь.

The amount of private memory **reserved** by a process.  It is also
known as the Data Resident Set or DRS.  Such memory may not yet
be mapped to physical memory (RES) but will always be included in
the virtual memory (VIRT) amount.

Связанный контент