У меня есть пользовательский класс-оболочка gtk.treeview
, который управляет собственным списком.У класса есть собственный метод, который очищает данные хранилища списков и перезаписывает их новыми данными.В целях тестирования потребления памяти древовидное представление отображает 50000 строк целых чисел в 8 столбцах.
Я заметил, что каждый вызов моей функции, которая обновляет хранилище списков данными, увеличивает объем памяти, используемой приложением.и никогда не возвращается обратно после очистки данных.
Вот моя простая реализация в виде дерева:
class TreeViewPrototype(gtk.TreeView):
def __init__(self):
gtk.TreeView.__init__(self)
self.columns = [str, str, str, str, str, str, str, str]
# Initialize Treeview and TreeViewColumns here
# Setup columns
self.liststore = gtk.ListStore(*self.columns)
self.set_model(self.liststore)
def set_list_model(self):
self.liststore.clear()
self.liststore = gtk.ListStore(*self.columns)
# Populate liststore with dummy data
for i in range(50000):
row = []
for j in range(len(self.columns)):
row.append("%d[%d]"%(i,j))
self.liststore.append(row)
Мне кажется, что каждый вызов set_list_model, когда я перезаписываю список списков с помощьюновый, он никогда не распределяет память данных.Что я делаю не так?