Russian Qt Forum
Март 25, 2017, 02:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: destroy() не освобождает память?  (Прочитано 1397 раз)
Slash
Новичок

Offline Offline

Сообщений: 1


Просмотр профиля
« Ответ #15 : Март 17, 2017, 17:29 »

Вот пример цикла в qml:
Код:
function allocateObject(parent) {
    var component = Qt.createComponent("TestComponent.qml");
    for(var i = 0 ; i < 30000 ; i++) {
        var object = component.createObject(parent);
        object.destroy()
    }
}

А сам TestComponent.qml
Код:
import QtQuick 2.7

Item {
    property string name: "item"
}

Вызов allocateObject съедает 40Mb памяти, которая по истечении времени так и не освободится. Повторный вызов съедает еще 13Mb. Тут для примера взят совсем примитивный компонент. В реальности компонент намного сложнее. И конечно не 30000 их создается.
И как же тогда быть с памятью?
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.113 секунд. Запросов: 22.