在我们注意到的中型Qt项目上工作时,如果屏幕上没有太多内存,那么内存消耗会非常高.我试图找到某种memleak导致我进入CREATE_QML_OBJECT宏,其中创建了qml实例对象.从加载的qml文件中删除所有自定义ui元素后,只留下我得到的四个基本元素
Rectangle {
Button {}
CheckBox {}
Slider {}
TextField {}
}
Run Code Online (Sandbox Code Playgroud)
而这个东西消耗大约~1-1.5 MB.
我已经看过QtQuick演示项目,那里有同样的事情:
图库演示.只是一堆控件,启动时100 MB.
相同的游戏演示.简单的游戏,在玩了256分钟的5分钟后就消失了.
我很惊讶一个简单的QtQuick QML应用程序可以占用大量内存.有人知道是什么导致这种分配,有没有办法管理它?
任何帮助将不胜感激.
相关链接,还没有找到答案
它全部由 javascript 垃圾收集器管理。需要尝试的事情有:
1)gc()加载项目后立即调用,即打开Component.onCompleted:
2) 将物品装载到Loader上。这样,它们在不使用时就不应该留在内存中。
这些并不能保证减少内存占用,但可以有所帮助。