Страницы памяти, используемые процессом в Linux - PullRequest
2 голосов
/ 14 декабря 2011

Я хочу получить список всех отображаемых страниц (выделенной памяти) в процессе Linux во время выполнения.Как я могу это сделать?

Ответы [ 3 ]

9 голосов
/ 14 декабря 2011

Изнутри процесса в Linux вы можете читать и анализировать /proc/self/maps;попробуйте cat /proc/self/maps, который покажет вам карту памяти процесса, который выполняет cat

Из другого процесса, для карты процесса pid 1234, вы можете прочитать /proc/1234/maps

И есть также /proc/self/smaps и т. Д.

Функция Linux dladdr , специфичная для Linux, иногда также полезна.

Если вас интересуют страницы, которые действительно находятся в ОЗУ,используйте mincore & msync

3 голосов
/ 14 декабря 2011

Вы можете использовать /proc/[PID]/maps для этого.

1 голос
/ 14 декабря 2011

/proc/$your_pid/maps и изучите другие файлы в /proc/$your_pid они тоже могут быть полезны

...