【问题标题】:Qt Quick memory usageQt Quick 内存使用
【发布时间】:2014-08-27 13:18:07
【问题描述】:

我们注意到,在处理一个中等大小的 Qt 项目时,当屏幕上没有太多内容时,内存消耗高得惊人。我试图找到某种 memleak 导致我使用 CREATE_QML_OBJECT 宏,其中创建了 qml 实例对象。从加载的 qml 文件中删除所有自定义 ui 元素并只留下四个基本元素后,我得到了

Rectangle {
    Button {}
    CheckBox {}
    Slider {}
    TextField {}
}

这个东西消耗大约 1-1.5 MB。

我看过 QtQuick 演示项目和那里的相同内容:

Gallery demo。只是一堆控件,启动时 100 MB。

Same game demo。简单的游戏,玩了 5 分钟后 256MB 没了。

我真的很惊讶一个简单的 QtQuick QML 应用程序可以消耗大量内存。有谁知道是什么导致了这种分配,有没有办法管理它?

任何帮助将不胜感激。


相关链接,没有找到答案

QML big memory consumption?

Memory footprint of QML applications

Performance Considerations And Suggestions

【问题讨论】:

  • 奇怪,KDE 开发人员说他们通过提高 QML 使用率来减少内存消耗。
  • 将 QML 称为“内存猪”将是一种恭维。比那更糟糕...

标签: qml qt-quick


【解决方案1】:

它全部由 javascript 垃圾收集器管理。 可以尝试的几件事是:

1)在加载项目后调用gc(),即Component.onCompleted:

2) 在 Loader 上加载项目。这样,它们不应该在不使用时留在内存中。

这些并不能保证减少内存占用,但可以提供一点帮助。

【讨论】:

  • 感谢您的建议,但它似乎只是 qt quick 应该如何工作。显然,高内存占用并不是开发团队关心的问题。也许这个想法是你应该在 qml 中实现你的 UI 的一些小部分。我不建议将 qtquick-only 用于大型项目,纯小部件效率更高。
猜你喜欢
  • 1970-01-01
  • 2012-01-27
  • 2014-10-22
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
相关资源
最近更新 更多