2014-04-23 9 views
0

Я хотел бы знать, возможно ли иметь профилировщик памяти, который будет анализировать память, полученную с помощью моего сценария python, и сообщить мне об использовании памяти со временем.Профайлер памяти со временем сценарий python

Целью этого было бы построить это и сделать выводы.

Как обычно в python, чем проще, тем лучше.

спасибо.

ответ

1

См: https://pypi.python.org/pypi/memory_profiler

Просто украсьте каждую функцию, которую вы хотите с @profile.

Бесстыдно взяты из вышеприведенного URL:

example.py

@profile 
def my_func(): 
    a = [1] * (10 ** 6) 
    b = [2] * (2 * 10 ** 7) 
    del b 
    return a 

if __name__ == '__main__': 
    my_func() 

Тогда:

$ pip install memory_profiler 
$ python -m memory_profiler example.py 
+0

Я уже использую mem-профайлер, но ни один из найденных мной не может получить мне информацию, которую я хочу (я настаиваю на том, чтобы со временем). Конечная цель того, что я делаю в настоящее время, - это контролировать распределение памяти машины, с которой я работаю, чтобы она позволяла больше памяти при необходимости. – AdrienNK

0

вы можете использовать любой профайлер как MEM-профиля в другой ответ или даже psutil в этом отношении и оберните логику для сбора временных меток вместе с текущим использованием памяти, а затем используйте ее для построения. Просто заявив очевидное, если вы пропустили, HTH. Проверьте этот ответ psutil for memory о том, как запрашивать текущее использование памяти с помощью psutil