Память никогда не освобождается при использовании классов Python и numpy - PullRequest
0 голосов
/ 11 мая 2011

По сути, я не собираюсь публиковать здесь весь код, но приведу общий пример. У меня есть класс, который имеет функцию для запуска и создания большого массива значений. Этот массив не должен быть намного больше, чем 10 МБ по моим оценкам. Внутри функций он создает новые и модифицирует массивы, которые должны собираться после выполнения функций в рамках поезда. Они не используются в других местах, кроме возвращенного tempArray, который помещается в большой массив. Это повторяется Используемая память просто продолжает расти и расти. Есть ли проблема с моим кодом или способ обойти это? Я читал здесь об утечках памяти с помощью malloc в Linux: http://pushingtheweb.com/2010/06/python-and-tcmalloc/.

1 Ответ

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

Что вы пытаетесь сделать?

temp = self.largeArray = zeros((1000,1000,10,20))
for y in temp.size:
    for x in temp1.size:
        self.largeArray[x,y] = train()

temp.size равно 200 000 000. Как вы можете сохранить что-либо в largeArray[x,y], если второе измерение этого массива только 1000?

...