数码知识与测评

位置:首页 >  数码周边  > 正文

qt写的程序内存一直在变大

时间:2024-11-21 00:00:51

QT程序占用内存过高

1. 问题:最近正在测试写的QT应用程序,QT程序运行在S3C2440板子上的linux系统中,测试的过程中发现一个奇怪的问题,QT程序占用内存一次比一次大。比如第一次开机QT应用程序运行内存为30M,在运行一段时间后增加到33M,此时我将板子断电。第二次上电重启,怪事发生了,此时运行内存达到了34M,运行一段时间后达到37M。依次类推,最后QT程序因为占用内存过大被linux系统直接杀掉了,后面直接就起不来了。这个问题我百思不得其解,按理即使有内存泄露,断电重启它应该也会复原啊,为何内存却一次比一次大呢?2. 原因:经过多天的查找终于找到了故障点,原来是因为我程序中使用了SQLite数据库导致的。具体的原因是,我在QT程序中使用SQLite数据库存取历史数据,存取的历史数据是由下位机传上来的,每5秒存一次,这样每天存取的数据量达到17280条,量比较大。而导致内存一次比一次大的根本原因就在于我获取数据库最后一条记录的操作方式,由于我使用文件号的形式存取数据,所以每次仪器开机时都要去查看数据库中最后一条历史记录的文件号,然后以此文件号为基础向数据库中添加历史记录(文件号唯一代表每条历史记录,不能重复)。

声明:本站文章由来自于作者,仅代表原作者观点,不代表数码之家立场,如有侵权可直接反馈本站,我们将会作删除处理
联系我们 关于我们 版权申明

数码之家广州云媒派信息技术有限公司 版权所有粤ICP备2021127029号