标题:QML Win7 内存泄漏吗
作者:soulcxf
日期:2014-11-25 15:00
内容:
有人在Win7下发布过QML写的程序吗?
现在的情况是这样,我在WinXP下运行一个用QML编写界面的程序,程序长期运行没有发现问题。
同样的程序在Win7下运行就会发现其内存一直在增长,只要切换其中的页面内存就会增长一点,持续操作程序内存会不断增长,有时超过800M以上,接着程序崩溃。里面有大多使用Rectangle、Text、 Image、TextInput等组件,也使用了 ListView、Flickable、ListModel等组件。
程序也通过VLD的调试测试,应该不是代码里的内存泄漏。现在没有头绪了,不知道谁可以帮我啊。
#1 [彩阳 12-02 13:57]
有可能是代码的问题。
请检查是否滥用
Qt.createComponent
以及
component.createObject
这类函数。
另外有些情况会隐式调用创建对象的函数的,需要注意。
最后,Qt在不同平台的适配性还有待观察。在Windows 7下,请升级一下显卡驱动再看看是否仍然出现按这样的问题,毕竟Qt Quick 2.x程序依赖OpenGL。
#2 回 彩阳 的帖子 [soulcxf 12-04 20:54]
彩阳:有可能是代码的问题。
请检查是否滥用
Qt.createComponent
以及
component.createObject
....... (2014-12-02 13:57)
感谢回复。
问题是这样的。我用官网上不带OpenGL的Qt库+vs2010编译的程序感觉内存泄漏很严重,我只是在一个Flickable里不停的拖动就能看到内存在不停地增长。后面换了一个带OpenGL的Qt库编译出来的程序明显感觉内存泄漏会少,拖动时内存增长相对很缓慢。
但是带OpenGL的Qt版本需要显卡至少支持OpenGL2.0才能正常运行。工控机上扩展显卡又比较麻烦。。。也不知道怎么解决。
#3 [彩阳 12-05 22:54]
工控机,也就是说目前没有显卡驱动?Windows 7下?
最好还是安装显卡驱动吧,哪怕是离线安装也行。
#4 [soulcxf 12-07 20:05]
主板集成显卡,驱动肯定也都是装好了。那个泄漏在工控机上发现的。然后在我的虚拟机下测试,确实是有的。但是用OpenGL版本的库感觉会明显好点。