优化QT的CPU占用率的一个思路,全网没看到这么详细的(有代码)

这篇具有很好参考价值的文章主要介绍了优化QT的CPU占用率的一个思路,全网没看到这么详细的(有代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于优化QT的cpu占用率

引言:在最近的项目中,发现执行QT程序时,CPU占用率奇高,最高高达98%。

1、查看CPU占用率 - 指令

Linux终端输入:top
即可查看当前CPU占用率

2、优化CPU站占用率

遂专门来找谷哥和度娘讨讨经验。

总结目前网上的各种说法,原因有如下几点:
1、在paintEvent函数和update函数使用不规范,或者相互嵌套。【=>导致了没有必要的循环刷新,甚至死循环。】
2、代码逻辑控制的UI控件频繁刷新,或者某个动作频繁执行。【=>UI刷新在一定程度上会对CPU占用率有影响,若频繁刷新控件(不论是重绘还是更新数据),都会十分消耗CPU占用率】
3、复杂的运算,如浮点运算
4、某种死循环

经过排查,以上情况均不属于。一层层剥逻辑,最终发现程序代码实现的某个类导致了CPU占用率的飙升。

细致排查后,发现该类界面有一个QLabel类定义的控件,用来显示当前时间的(且1s刷新一次)。该控件的实时时钟代码如下:

void MyWidgets::InitTime(QLabel *ClockLabel)
{
//时间设置
//设置时间显示的字体
   QPalette palette;
   palette.setColor(QPalette::WindowText,QColor(10,10,10));
   ClockLabel->setPalette(palette);

   //定时器
   QTimer *CurrentTime = new QTimer(this);
   CurrentTime->start(0);				//使用定时器信号槽,尽快更新时间的显示

   connect(CurrentTime,&QTimer::timeout,[=](){
       QDateTime current_time = QDateTime::currentDateTime();
       //显示时间,格式为:年-月-日 时:分:秒 周几
       QString StrCurrentTime = current_time.toString("yyyy-MM-dd hh:mm:ss dddd");
       ClockLabel->setText(StrCurrentTime);
   });
}

可以看出,在功能实现函数中,是通过定时器进行实时时间同步和刷新的。而定时器设定的刷新时间是:Timer->start(0); 将该值设为100后,cpu占用率一下从98%降低至10%左右,且界面无操作时,可低至0.3%。

总结:
1、优化QT的CPU占用率的一个思路是实时时钟的定时器。
2、定时器相关的知识点还是要多了解,使用时要认真对待,而不是光靠想。
3、一个简单的修改,就能够让CPU占用率大大降低。所以,性能优化不是难事,但也不是小事。
4、对待自己的代码,要抱着胆大心细的特点,多尝试,多揣摩。定时优化,定时总结。

希望我的文章能够给你带来一些启发。欢迎+个关注,便于我们实时沟通!文章来源地址https://www.toymoban.com/news/detail-580256.html

到了这里,关于优化QT的CPU占用率的一个思路,全网没看到这么详细的(有代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt使用QCustomplot绘制cpu和内存使用率图

                QCustomPlot是一个开源的Qt C++图表库,用于可视化数据。该库提供了多种类型的可定制的图表,包括散点图、线图、柱状图和等高线图等。它还支持自定义绘制,可以创建任意形状和大小的元素,并使其与其他元素交互。QCustomPlot易于集成到现有的Qt应用程序中

    2024年02月09日
    浏览(37)
  • 【性能优化】CPU利用率飙高与内存飙高问题

    📫作者简介: 小明java问道之路 , 2022年度博客之星全国TOP3 ,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公司后端高级工程师。          📫 热衷分享,喜欢原

    2024年02月05日
    浏览(41)
  • Python 获取windows下硬件数据信息(CPU,内存,英特尔、英伟达、AMD显卡使用率及详细信息)

    前言:最近一直在做关于显卡数据采集的调研工作,也在github上看到了一些三方库比如Python和golang的psutil, python: gpustart,再或者通过wmi或者windowsApi等底层接口 但是都只能获取到显卡的名称以及厂家信息等 无法真正意义上获取到显卡占用率等数据 在或者只能获取到英伟达的显卡

    2024年02月16日
    浏览(43)
  • 人工智能这么厉害,比如GPT-4,为什么没有看到程序员失业?

    目录  一、一次理性的反思 看看网友基于GPT-4生成代码的测试案例: 二、人工智能与程序员相辅相成 三、无独有偶的低代码 1、提升开发价值 2、利于团队升级 四、最后 OpenAI发布了GPT-4,这个远超以往的任何人工智能的模型,在 逻辑、推理、数学、常识 等方面超越了90%的人

    2023年04月08日
    浏览(44)
  • Qt 性能优化:CPU占有率高的现象和解决办法

    在最近的项目中,发现执行 Qt 程序时,有些情况下的 CPU 占用率奇高,最高高达 100%。项目跑在嵌入式板子上,最开始使用 EGLFS 插件,但是由于板子没有单独的鼠标层,导致鼠标移动起来卡顿,很不流畅,所以换成了 LinuxFB 插件。但是如果 CPU 占有率高了的话,也会导致鼠标

    2023年04月08日
    浏览(26)
  • 在线安装Qt(全网最详细图文版)--以Qt5.15.2 Windows版为例

    作者:靠普科技 时间:2023/8/18 版本:V1.0 说明:本文系作者原创,转载前请务必联系本文作者。 接触几年Qt有余,发现部分开发人员对Qt的认识远远不够,仅仅停留在表面。甚至有较少部分人认为Qt是一种开发编程语言或者将QTCreator当做Qt,这些理解都是错误的且过于片面。实

    2024年02月06日
    浏览(39)
  • 全网最详细部署配置中科大chatgpt学术优化环境

    项目地址: https://github.com/binary-husky/gpt_academic 使用git下载到本地 ` 使用conda创建虚拟环境chatgpt-academic 激活刚才创建好的虚拟环境 chatgpt-academic 切换到gpt_academic项目根目录下,安装依赖文件。 虚拟环境创建好了,依赖也安装了,这个时候我们用pycharm打开项目,建议大家在conf

    2024年02月07日
    浏览(48)
  • python-在系统托盘显示CPU使用率和内存使用率

    一、添加轮子 1.添加托盘区图标库  infi.systray 2.添加图像处理库  Pillow 3.添加  psutil  来获取CPU、内存信息 二、完整代码 三、实际效果展示

    2024年02月05日
    浏览(48)
  • 【linux】查看CPU的使用率

    命令1:top 总体系统信息 uptime:系统的运行时间和平均负载。 tasks:当前运行的进程和线程数目。 CPU:总体 CPU 使用率和各个核心的使用情况。 内存(Memory):总体内存使用情况、可用内存和缓存。 查看 CPU 使用率 以下是一些常用的CPU使用率相关字段: %Cpu(s):显示整个系统

    2024年04月23日
    浏览(43)
  • Docker容器cpu利用率问题

    1.top原理 top 是读的/proc/stat文件 比如cat /proc/PID/stat 进程的总Cpu时间processCpuTime = utime + stime + cutime + cstime,该值包括其所有线程的cpu时间 某一进程Cpu使用率的计算 计算方法:       1  采样两个足够短的时间间隔的cpu快照与进程快照,             a每一个cpu快照均为(user、

    2023年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包