Qt定时器的精度问题
一、场景
一个网络音频采集场景如下:
数据发送端:嵌入式设备按照16kHz 16Bit连续不断采集音频数据,通过Socket进行发送
数据接受端:QT上位机开一个tcpserver,数据readReady后由QByteArray进行追加,音频波形显示开了一个定时器,每100ms去取QByteArray指定长度(16K*0.1*2),并remove该数据。
打印结果发现,QByteArray的数据越来越多,说明接受数据和取数据的速度没匹配。
日志:
二、分析
数据发送端是用的实时系统,音频采集的数据发送频率不会出现问题,那应该是QT上位机定时器的精度不到,定时器出现误差才会出现FIFO不断增长。
经过了解,QTimer的精度确实不太够,默认构造为Qt::CoarseTimer,粗略定时精度在正负5%。另一方面,windows不是实时系统,时间片轮转调度也会导致定时器的误差。
提高QTimer的精度,可以使用setTimerType(Qt::PreciseTimer),性能会好些。
Qt定时器的精度问题相关推荐
- Qt定时器QBasicTimer、startTimer、QTimer使用总结
QBasicTimer 这个定时器类是一个 轻量级的.较底层的.被Qt内部使用的定时器类.如果在你的应用程序中使用定时器类,推荐使用QTimer类,而不是这个类.该类和QTimer类类似,也提供sta ...
- 使用QT定时器遇到的问题
问题描述: 程序上有槽函数触发频率变化的需求.在使用Qt定时器触发槽函数的过程中发现,每秒钟1000次没有问题,在每秒钟30~50次的情况下出现了延迟. 主体代码如下: std::chrono::ti ...
- QT 定时器与动画实现
前言 Qt提供图形视图框架(Graphics View Framework).动画框架(The Animation Framework)和状态机框架(The State Machine Framewo ...
- qt 定时器_Qt开源作品23-颜色拾取器
## 一.前言 在做很多项目的UI界面的时候,相信绝大部分人都有过抄袭别人的UI界面尤其是颜色的时候,毕竟十个程序员九个没有审美,或者说审美跟一坨屎一样,大家主要的精力以及擅长点都是在写功能实现具体功 ...
- 二、Qt定时器与文本编辑器制作《QT 入门到实战》
学习目标 了解 qt 的 pixmap 了解 qt 的 label 如何显示图片 了解定时器的开启 了解定时器的关闭 了解文件如何进行读取 了解 QFileDialog 的使用 了解了一个文本编辑器的 ...
- QT定时器QTimer
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...
- QT 定时器使用事项
情景 有一种特殊情况,一旦窗口系统事件队列中的所有事件都已经被处理完,一个定时为0的QTimer就会到时间了.这也可以用来当提供迅速的用户界面时来做比较繁重的工作.(优点) QT app启动后不做任何 ...
- 使用QT定时器 隐藏 label
widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> // 定时器对象Q ...
- qt定时器是阻塞的吗_吊打面试官 | 面试官:TCP真的可靠吗
点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<面试官:TCP真的可靠吗>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 TCP真的可靠吗 面试官经常会问的一个问题是 ...
最新文章
- matplotlib 标签_为折线图添加数据标签的方法,附代码
- Android JetPack ViewModel 源码解析
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
- learnByWork
- SAP 生产订单结算
- 剑指offer之斐波那契问题(C++/Java双重实现)
- 三角网导线平差实例_网平差三角网三边导线网.doc
- C# 虚方法(virtual)覆盖(override) - 隐藏(new) - 重载
- 从苹果 M1 到英伟达 Grace,“缝合风”为何在芯片大厂中盛行?
- 登陆模块防止恶意用户SQL注入攻击
- 学士后java单元项目答案_北大青鸟学士后java工程师第二单元项目源代码
- Unity UGUI 屏幕适配
- matlab 图案 柱状图_科学网—使用matlab绘画柱状图,且使用不同的图案填充 - 时杰的博文...
- 端口扫描工具masscan常用方法和参数
- 手把手教你配置阿里云服务器搭建网站
- C++的O2、O3到底是个什么鬼
- 恒虚警率(Constant False Alarm Rate)检测
- python代码转换成EXE文件之pyinstaller使用教程
- [IMX6Q][Android5.1]移植笔记 --- Kernel启动无法挂载文件系统
- 小伙的java之旅(4)
热门文章
- 计算平面坐标某点(x,y)与原点(0,0)的角度
- new关键字对类成员的阻断
- 在国外千万不要以为别人都听不懂中文
- 计算机网络选择重传,计算机网络选择重传协议实验报告..docx
- ik分词和jieba分词哪个好_Pubseg:一种单双字串的BiLSTM中文分词工具
- linux程序已经在后台运行冻结了_如何使程序在Linux后台运行
- android格式化时间中文版,Android 仿微信聊天时间格式化显示功能
- slf4j的简单用法以及与log4j的区别
- 删除列表中满足一定条件的元素
- [react] React16新特性有哪些?