Суть вопроса:
Как в Linux определить размер "частной" памяти процесса, то есть без учета разделяемых библиотек?
>Как в Linux определить размер "частной" памяти процесса, то есть без учета
>разделяемых библиотек?/proc/<pid>/statm
size total program size
resident size of memory portions
shared number of pages that are shared
trs number of pages that are 'code'
drs number of pages of data/stack
lrs number of pages of library
dt number of dirty pages
То есть, под "часной" памятью используемой процессом можно считать:
(size - share) * 4 = "частная память" кб ?Встречный вопрос:
$ cat /proc/10687/statm
10831 10831 8359 2 0 10829 2435drs=0, но как программа может обходится без стека?
>То есть, под "часной" памятью используемой процессом можно считать:
>(size - share) * 4 = "частная память" кб ?
>
>Встречный вопрос:
>$ cat /proc/10687/statm
>10831 10831 8359 2 0 10829 2435
>
>drs=0, но как программа может обходится без стека?А почему умножить на 4?
>>То есть, под "часной" памятью используемой процессом можно считать:
>>(size - share) * 4 = "частная память" кб ?>А почему умножить на 4?
Данные в statm приведены в страницах памяти.
Размер страницы 4 кб. Следовательно для получения размера памяти в кб умножаем на 4.