Отслеживание утечек памяти Python?

Каким-то образом память моя программа Python занимает все больше и больше памяти по мере ее выполнения (столбцы VIRT и RES) в верхней команде продолжают увеличиваться.

Однако я дважды тщательно проверил свой код и уверен, что утечек памяти нет (не использовались ни словарь, ни глобальные переменные. Это всего лишь основной метод, вызывающий вспомогательный метод несколько раз) .

Я использовал heapy, чтобы профилировать использование памяти по

from guppy import hpy;
heap = hpy();
.....
print heap.heap();

каждый раз, когда основной метод вызывает вспомогательный метод. Удивительно, но результат всегда один и тот же. Но использование памяти продолжает расти.

Интересно, не использовал ли я правильно heapy или VIRT и RES в команде "top" на самом деле не отражают память, которую использует мой код?

Или кто-нибудь может предоставить лучший способ отслеживания использования памяти в сценарии Python?

Большое спасибо!

7
задан Vendetta 24 July 2011 в 21:44
поделиться