Вверху: ДАННЫЕ = RES + стек + что?

Я проанализировал потребление памяти Java-программой в Linux Mint. Я использовал top для сбора статистики памяти (память, используемая программой, а также общесистемные индикаторы, такие как total_mem_used и mem_free). Результаты оказались неожиданными:

  • «используемая физическая память» (RAM_USE_DELTA на диаграмме) увеличилась, а «свободная физическая память» (возврат RAM_FREE_DELTA на диаграмме) уменьшилась на ту же величину, что и RES ( P_RSS на диаграмме) увеличилось - это то, что я ожидал
  • поле DATA (P_DATA на диаграмме) (описанное в top's man как " объем физической памяти, выделенной для кода, отличного от исполняемого), был на 150 мегабайт выше RES.
  • SWAP (SWAP_USE_DELTA на графике) все время был равен нулю
  • SHR (общая память; P_SHR на графике) был меньше 15 МБ

Вопрос в том, что было засчитано в вышеупомянутые 150МБ? Виртуальный (зарезервированный, но не выделенный) стек? Файлы с отображением памяти? Как я писал ранее: RES ~ RAM_USED_DELTA поэтому объем свободной памяти НЕ уменьшился на 150 МБ, поэтому это может указывать на виртуальную память, но было бы странно, чтобы индикатор памяти был суммой набора резидентов и виртуальной суммы...

memory usage chart

(на этом графике линии, описанные *_DELTA, относятся к началу программы, т.е. близко к левой стороне, где начинается красный P_RSS)

0
11.10.2017, 00:08
0 ответов

Теги

Похожие вопросы