Qt元素的Qt内存管理

时间:2013-10-28 06:59:37

标签: javascript memory memory-management qt4 qml

我有一个使用QML元素的简单Qt应用程序,一旦启动应用程序需要大约40Mb,现在我为单页创建动态对象。

实施例

var component = Qt.createComponent("AboutUs.qml");
 var object = component.createObject(mainPage);

并在我关闭页面时销毁它们   object.destroy()

应用程序的行为很奇怪:每当它创建一个简单的对象时,它需要大约1Mb,但是当我删除对象时,它们的内存不会释放。

现在我的应用程序有20个这样的页面,所以如果我单次打开每个页面,应用程序占用的总内存大约是60Mb,就像内存泄漏一样。

我无法找出它为什么会发生,是javascriptengine占用内存而不释放它,还是java脚本局部变量,不释放内存,或者是QT4,它是缓存到创建对象。

1 个答案:

答案 0 :(得分:0)

引用Qt的网站:

  

可以使用destroy()方法删除项目。这种方法有一个   可选参数(默认为0),用于指定近似值   在销毁对象之前延迟毫秒。

     

在调用destroy()时,对象不会被销毁,但是   在该脚本块结束和下一个脚本块之间的某个时间清理   frame(除非你指定了非零延迟)。

您应该尝试使用参数调用destroy()以使其立即删除对象。