Назад | Перейти на главную страницу

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

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

В соответствии с 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. Этот столбец не содержит никакой информации о том, сколько памяти фактически используется программой, он просто сообщает нам, что программа зарезервировала некоторый объем памяти, однако эта память может оставаться нетронутой в течение длительного времени.

На страницах руководства:

 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 как говорится, размер вашего стека, который система использует для выполнения конкретной программы. Стек - это место, где система хранит обратную связь функций, которые вызывает ваша программа / процесс. Имейте в виду, что этот показатель говорит о размере стека, а не о самом стеке.

Подробнее о других упомянутых вами столбцах памяти Вот

Со страницы руководства Вот.

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.