时频监控软件开发

    xiaoxiao2021-03-25  130

    1. 监测软件架构

    Created with Raphaël 2.1.0 时频架构 UDP接收线程 UDP接收线程 UDP报文解析线程 UDP报文解析线程 MYSQL存储线程 MYSQL存储线程 报文数据分析线程 报文数据分析线程 MYSQL错误信息存储线程 MYSQL错误信息存储线程 显示主线程(报文数据) 显示主线程(报文数据) 显示主线程(错误信息) 显示主线程(错误信息) 显示主线程(链接数) 显示主线程(链接数) OK OK OK OK OK OK OK

    2. 注意点

    (1)mysql插入时,单行连续插入效率极低,表现在内存暴涨!! 网上看到解释:内存insert时需要写硬盘,若insert数据量大于硬盘写入(或者写时需要其他sql操作,也算写操作)时,会cache在内存中,这样就会看到内存上涨。

    (2)QList容器类的移除操作并不会释放内存; 意思是,不断向容器里添加数据,容器的容量会不断增大,移除后,数据体积小了,但容器容量并没有变小,解决的方法是swap()方法,会交换两个容器,从而释放出前一个容器的内存; 在QWT中使用curve绘图时,限制曲线数据点的大小,可以在容器达到一定大小时进行takefirst()操作,移除前面的数据,再进行数据插入操作。(有时间再试一下不swap)

    (3)今天发现QTextEdit导致内存疯长,原来故障消息一直往里面加,没清掉。以后要注意,数据一定要流动起来,不管存文件还是送的数据库,不能堆在内存里!! 后来使用

    ui.textEdit->document()->setMaximumBlockCount(100);

    来限制document的行数;

    转载请注明原文地址: https://ju.6miu.com/read-12334.html

    最新回复(0)