• 3692阅读
  • 4回复

一个94K的qt小程序跑在板子上为什么会占三十多兆的内存啊 [复制链接]

上一主题 下一主题
离线cao_zhong_yu
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-01
我用的qt 版 本是qt-extended-4.4.3

写了一个电子书的浏览界面,主要是浏览目录用,如果是文件夹就进入,如果是文件判断格式,然后用

QProcess调用相应的阅读程序打开

程序一共才94K , 我的板子是六十四兆的内存,跑之前是内存用的5兆,跑之后内存用了三十一兆,还可

以跑   如果想在qpe里调用这个程序就完蛋了

我的问题是在qt里或者是C++里面有哪些操作是很费内存的,还有我的程序里边初始化时都是全局变

量,静态分配的内存

请大家帮帮忙

离线rooney
只看该作者 1楼 发表于: 2010-02-01
要加载qte的库,那个就几十兆了
离线cao_zhong_yu
只看该作者 2楼 发表于: 2010-02-02
谢谢关注
我找到费内存的地方,但不知道原因,我大概的描述一下

我定义了两个类,CzyItem,CzyMain.
在CzyMain中我定义了七个CzyItem,相当于七行的列表显示,用来显示文件夹或文件
我想再加张图片进去,就在CzyItem中new 了个全局的QImage , 问题就出来了,这个程序比以前多占了六兆的内存
然后如果我在CzyMain中new一个QImage,然后作为参数在CzyItem初始化时传给它,这样就正常了,内存没改变多少
离线318065268
只看该作者 3楼 发表于: 2010-02-02
QImage用来做图片处理的,我们能够获取到图片的每个像素点。所以,我猜把它加载到内存里的时候,其格式就不是压缩的JPEG或其它了,就像用windows的画图软件生成的一个位图一样,会比压缩的格式大出很多倍。
静态全局的QImage我也曾试过,运行时不断打印提示信息,说QPainter什么什么的问题。所以我觉得还是给它一个图片路径就行了,真要显示的时候再加载也没什么问题。而且纯粹显示用QPixmap就行了。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
离线cao_zhong_yu
只看该作者 4楼 发表于: 2010-02-02
嗯,受用了,谢谢
png的图片确实很占地方
还有个问题就是不管是在子类还是父类我都是在构造函数中new来声名的,而且都是全局的
为什么在子类中它会那么费内存啊
快速回复
限100 字节
 
上一个 下一个