Можно ли получить "высокую отметку" использования памяти от Python? - PullRequest
5 голосов
/ 28 мая 2011

Есть ли в (C) Python методы для проверки текущего использования памяти процессом? В частности, я хотел бы определить верхнюю отметку использования памяти в сценарии тестирования, но при необходимости я не возражаю периодически проверять использование памяти и вычислять верхнюю отметку для себя.

РЕДАКТИРОВАТЬ : Я ищу решение для чистого Python или что-то, что работает на OS X.

Ответы [ 4 ]

4 голосов
/ 06 октября 2011

Посмотрите на мой ответ на этот вопрос .Он использует функцию getrusage() из модуля resource стандартной библиотеки и работает в Mac OS X.

2 голосов
/ 28 мая 2011

В Linux вы можете проверить файл /proc/self/status:

VmPeak:     6784 kB
VmSize:     6784 kB
VmLck:         0 kB
VmHWM:       572 kB
VmRSS:       572 kB
VmData:      180 kB
VmStk:       136 kB
VmExe:        44 kB
VmLib:      1640 kB
VmPTE:        36 kB
VmSwap:        0 kB

Вероятно, VmPeak - это строка, которая вас больше всего интересует, но если вы mmap(2) файл размером в гигабайт, вам, вероятно, придется учитывать более гигабайта, даже если вы используете только три или четыре страницы из файл.

Если вы знаете об ограничениях проверки памяти с помощью top(1) или ps(1), тогда вам, вероятно, хорошо. Если вы не знаете об ограничениях проверки использования памяти, обязательно посмотрите значения столбцов Virt, Res и Shr в выводе top(1). :)

1 голос
/ 28 мая 2011

вы можете использовать os.getpid(), чтобы получить текущий PID, а затем использовать этот PID, чтобы найти процесс в выходных данных подпроцесса, вызывающего top / free / ps и т. Д.

iЯ не эксперт по OSX / BSD, поэтому я не уверен в том, какие флаги какой команде даст вам использование памяти процессом

0 голосов
/ 28 мая 2011

MacosX имеет vmmap и vmmap64, которые вы можете использовать для доступа к информации.Я не разбираюсь в Python, но я полагаю, что вы должны иметь возможность открыть канал для подпроцесса, чтобы как-то прочитать вывод.

РЕДАКТИРОВАТЬ: некоторую дополнительную информацию не на Python можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...