繁体   English   中英

Qt QML应用程序增加了内存使用率

[英]Qt qml application increasing memory usage

我使用Qt / QML创建了一个应用程序,并使用QQuickView加载了QQuickView文件,并使用Loader元素更改了应用程序内部的pages(gui),并且工作正常,但是我的问题是程序内存使用量的增加(应用程序开始时只有不到100MB的空间,而1天后大小约为500 MB或更多),我最初是用Qml(javascript)编写和更新对象模型的,但是应用程序增长很快,更改为使用C ++对象创建模型,内存使用量增长较少,但问题仍未解决。

我的模型可以连续更新(甚至每秒更新1次),但是我不认为这是内存增加的原因。

但是随着这个问题的到来,其他的陌生人的行为是TableView更改页面时,内存甚至增加了10 MB,我尝试使用gc()释放内存,但是我没有获得成功的结果,并且在页面更改中,内存有时会增加1 MB。

注意:我使用Qt 5.5和msvc 2010。

您可能要检查您的应用程序是否存在内存泄漏。 甚至对于QML来说,这听起来有点过分,因为内存效率并不为人所知。

请记住,即使这似乎是合乎逻辑的事情,QML引擎也会过度配置并且不会释放内存。 我曾经遇到过在QML中达到千兆位内存使用的情况,有成千上万个“存活”的QML对象,并且在删除所有对象后,内存使用量不会接近初始内存使用量。 释放的内存通常很小,例如,具有1 GB内存的对象,删除所有对象只能释放150 MB的内存。 好消息是,内存将被重用,再次创建这些对象将使内存使用率达到先前的峰值,而不会再进一步​​。 因此,就应用程序中的内存而言,您已经设置好了。

我不知道这是否会与其余的OS进程一起使用,如果系统用完了内存,应用程序是否会释放额外的内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM