Панды: где здесь утечка памяти?

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

import time, string, pandas, numpy, gc
class temp_class ():

    def __init__(self, nrow = 1000000, ncol = 4, timetest = 5):

        self.nrow = nrow
        self.ncol = ncol
        self.timetest = timetest

    def createDataFrame(self):

        print('Check memory before dataframe creating')
        time.sleep(self.timetest)
        self.df = pandas.DataFrame(numpy.random.randn(self.nrow, self.ncol),
            index = numpy.random.randn(self.nrow), columns = list(string.letters[0:self.ncol]))
        print('Check memory after dataFrame creating')
        time.sleep(self.timetest)

    def changeSize(self, from_ = 0, to_ = 100):

        df_new = self.df[from_:to_].copy()
        print('Check memory after changing size')
        time.sleep(self.timetest)

        print('Check memory after deleting initial pandas object')
        del self.df
        time.sleep(self.timetest)

        print('Check memory after deleting copy of reduced pandas object')
        del df_new
        gc.collect()
        time.sleep(self.timetest)

if __name__== '__main__':

    a = temp_class()
    a.createDataFrame()
    a.changeSize()

Before dataframe creating I have approx. 15 mb of memory usage

After creating - 67mb

After changing size - 67 mb

After deleting original dataframe - 35mb

After deleting reduced table - 31 mb.

16 mb?

Я использую Python 2.7.2 (x32) на машине Windows 7 (x64), панды.version составляет 0,7,3. NumPy.version это 1.6.1

Ответы на вопрос(1)

Ваш ответ на вопрос