当前位置: 首页 > news >正文

网站建设和推广话术怎么用免费的网站空间

网站建设和推广话术,怎么用免费的网站空间,网络营销的特点与优势,微博推广方式有哪些一、前言 在很多软件上#xff0c;会在某个部位显示一个部件#xff0c;专门显示当前的CPU使用率以及内存占用#xff0c;方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用#xff0c;在不用打开任务管理器或者资源查看器的时候直接得知当前系统的…一、前言 在很多软件上会在某个部位显示一个部件专门显示当前的CPU使用率以及内存占用方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用在不用打开任务管理器或者资源查看器的时候直接得知当前系统的运行情况。尤其是视频监控系统如果64路全开肯定很占用CPU和内存情况这样直接在软件上直观的查看到当前占用率用户更方便判断当前电脑环境是否适合打开多少路通道。 采集本地系统的实时CPU使用率如果使用的GetSystemTimes函数会发现和本地任务管理器中的不一致主要集中在win10系统/win7和XP系统貌似正常那是因为计数统计的方式不一样采用GetSystemTimes函数获取到的值相对来说是系统底层的数据。为了能够和任务管理器中展示的一致试验过各种办法后决定采用命令行获取的形式处理这样获取到的值是一致的在win10以下的系统执行 typeperf “\Processor(_Total)\% Processor Time”在win10及以上的系统执行 typeperf “\Processor Information(_Total)\% Processor Utility”。执行命令采用QProcess类执行结果有信号通知直接读取解析即可。同理在linux系统上也是采用执行命令行的形式获取比如linux上获取CPU占用命令是 cat /proc/stat获取内存相关命令是 cat /proc/meminfo。在windows上获取内存相关使用函数 GlobalMemoryStatusEx。 二、主要功能 实时显示当前CPU占用率。实时显示内存使用情况。包括共多少内存、已使用多少内存。全平台通用包括windows、linux、ARM。发出信号通知占用率和内存使用情况等以便自行显示到其他地方。 三、效果图 四、开源主页 以上作品完整源码下载都在开源主页会持续不断更新作品数量和质量欢迎各位关注。本开源项目已经成功升级到V2.0版本分门别类图文并茂保你爽到爆。Qt开源武林秘籍开发经验看完学完20K起薪没有找我 国内站点https://gitee.com/feiyangqingyun/QWidgetDemo国际站点https://github.com/feiyangqingyun/QWidgetDemo开源秘籍https://gitee.com/feiyangqingyun/qtkaifajingyan个人主页https://qtchina.blog.csdn.net/视频主页https://space.bilibili.com/687803542 五、核心代码 #pragma execution_character_set(utf-8)#include cpumemorylabel.h #include qtimer.h #include qprocess.h #include qdebug.h#ifdef Q_OS_WIN #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x502 #endif #include windows.h #endif#define MB (1024 * 1024) #define KB (1024)CpuMemoryLabel::CpuMemoryLabel(QWidget *parent) : QLabel(parent) {totalNew idleNew totalOld idleOld 0;cpuPercent 0;memoryPercent 0;memoryAll 0;memoryUse 0;//获取CPU占用情况定时器timerCPU new QTimer(this);connect(timerCPU, SIGNAL(timeout()), this, SLOT(getCPU()));//获取内存占用情况定时器timerMemory new QTimer(this);connect(timerMemory, SIGNAL(timeout()), this, SLOT(getMemory()));//执行命令获取process new QProcess(this);connect(process, SIGNAL(readyRead()), this, SLOT(readData()));showText true; }CpuMemoryLabel::~CpuMemoryLabel() {this-stop(); }void CpuMemoryLabel::start(int interval) {this-getCPU();this-getMemory();if (!timerCPU-isActive()) {timerCPU-start(interval);}if (!timerMemory-isActive()) {timerMemory-start(interval 1000);} }void CpuMemoryLabel::stop() {process-close();if (timerCPU-isActive()) {timerCPU-stop();}if (timerMemory-isActive()) {timerMemory-stop();} }void CpuMemoryLabel::getCPU() { #ifdef Q_OS_WIN #if 0static FILETIME lastIdleTime;static FILETIME lastKernelTime;static FILETIME lastUserTime;FILETIME newIdleTime;FILETIME newKernelTime;FILETIME newUserTime;//采用GetSystemTimes获取的CPU占用和任务管理器的不一致GetSystemTimes(newIdleTime, newKernelTime, newUserTime);int offset 31;quint64 a, b;quint64 idle, kernel, user;a (lastIdleTime.dwHighDateTime offset) | lastIdleTime.dwLowDateTime;b (newIdleTime.dwHighDateTime offset) | newIdleTime.dwLowDateTime;idle b - a;a (lastKernelTime.dwHighDateTime offset) | lastKernelTime.dwLowDateTime;b (newKernelTime.dwHighDateTime offset) | newKernelTime.dwLowDateTime;kernel b - a;a (lastUserTime.dwHighDateTime offset) | lastUserTime.dwLowDateTime;b (newUserTime.dwHighDateTime offset) | newUserTime.dwLowDateTime;user b - a;cpuPercent float(kernel user - idle) * 100 / float(kernel user);lastIdleTime newIdleTime;lastKernelTime newKernelTime;lastUserTime newUserTime;this-setData(); #else//获取系统版本区分win10bool win10 false; #if (QT_VERSION QT_VERSION_CHECK(5,4,0))win10 (QSysInfo::productVersion().mid(0, 2).toInt() 10); #elsewin10 (QSysInfo::WindowsVersion 192); #endifQString cmd \\Processor(_Total)\\% Processor Time;if (win10) {cmd \\Processor Information(_Total)\\% Processor Utility;}if (process-state() QProcess::NotRunning) {process-start(typeperf, QStringList() cmd);} #endif#elif defined(Q_OS_UNIX) !defined(Q_OS_WASM)if (process-state() QProcess::NotRunning) {totalNew idleNew 0;process-start(cat, QStringList() /proc/stat);} #endif }void CpuMemoryLabel::getMemory() { #ifdef Q_OS_WINMEMORYSTATUSEX statex;statex.dwLength sizeof(statex);GlobalMemoryStatusEx(statex);memoryPercent statex.dwMemoryLoad;memoryAll statex.ullTotalPhys / MB;memoryFree statex.ullAvailPhys / MB;memoryUse memoryAll - memoryFree;this-setData();#elif defined(Q_OS_UNIX) !defined(Q_OS_WASM)if (process-state() QProcess::NotRunning) {process-start(cat, QStringList() /proc/meminfo);} #endif }void CpuMemoryLabel::readData() { #ifdef Q_OS_WINwhile (!process-atEnd()) {QString s QLatin1String(process-readLine());s s.split(,).last();s.replace(\r, );s.replace(\n, );s.replace(\, );if (!s.isEmpty() s.length() 10) {cpuPercent qRound(s.toFloat());}} #elif defined(Q_OS_UNIX) !defined(Q_OS_WASM)while (!process-atEnd()) {QString s QLatin1String(process-readLine());if (s.startsWith(cpu)) {QStringList list s.split( );idleNew list.at(5).toUInt();foreach (QString value, list) {totalNew value.toUInt();}quint64 total totalNew - totalOld;quint64 idle idleNew - idleOld;cpuPercent 100 * (total - idle) / total;totalOld totalNew;idleOld idleNew;break;} else if (s.startsWith(MemTotal)) {s.replace( , );s s.split(:).at(1);memoryAll s.left(s.length() - 3).toUInt() / KB;} else if (s.startsWith(MemFree)) {s.replace( , );s s.split(:).at(1);memoryFree s.left(s.length() - 3).toUInt() / KB;} else if (s.startsWith(Buffers)) {s.replace( , );s s.split(:).at(1);memoryFree s.left(s.length() - 3).toUInt() / KB;} else if (s.startsWith(Cached)) {s.replace( , );s s.split(:).at(1);memoryFree s.left(s.length() - 3).toUInt() / KB;memoryUse memoryAll - memoryFree;memoryPercent 100 * memoryUse / memoryAll;break;}} #endifthis-setData(); }void CpuMemoryLabel::setData() {cpuPercent (cpuPercent 0 ? 0 : cpuPercent);cpuPercent (cpuPercent 100 ? 0 : cpuPercent);QString msg QString(CPU %1% Mem %2% ( 已用 %3 MB / 共 %4 MB )).arg(cpuPercent).arg(memoryPercent).arg(memoryUse).arg(memoryAll);if (showText) {this-setText(msg);}emit textChanged(msg);emit valueChanged(cpuPercent, memoryPercent, memoryAll, memoryUse, memoryFree); }QSize CpuMemoryLabel::sizeHint() const {return QSize(300, 30); }QSize CpuMemoryLabel::minimumSizeHint() const {return QSize(30, 10); }bool CpuMemoryLabel::getShowText() const {return this-showText; }void CpuMemoryLabel::setShowText(bool showText) {this-showText showText; }
http://www.w-s-a.com/news/995667/

相关文章:

  • 注册网站建设开发怎么自己做导航网站
  • 设计做网站品牌咖啡主题网页界面设计
  • 个人网站制作总体设计宿迁房价2023年最新房价
  • 服装网站建设进度及实施过程马鞍山网站设计制作
  • 郑州网站优化顾问济宁网站制作
  • 网站开发简单吗网站引导页分为三个板块设计风格
  • 湖南做网站 在线磐石网络百度一下百度搜索
  • 现在建网站多少钱推广营销费
  • 联想企业网站建设的思路西安网站建设阳建
  • 网站内容 内链网站建设电话销售工作总结
  • 系统网站开发知名的摄影网站有哪些
  • 网站拍照的幕布扬中网站建设价位
  • 网站ie兼容性差西安小程序开发的公司
  • 上海网站建设培训app网站开发成本
  • 个人网站icp外贸网站开发 河南
  • 遵义建设网站无锡市规划建设局网站
  • 海外留学网站建设方案门户网站的发布特点
  • 网站建设不赚钱net112企业建站系统
  • 网站建设团队管理模板贵州省住房和城乡建设部网站
  • 曲沃网站建设网上学编程的有哪些比较好的网站
  • 厦门网站建设慕枫学做网站需要多久
  • 爱奇艺做任务领vip网站设计广告图片
  • 中科汇联网站建设手册上海公司名称注册查询网
  • 网站建设电子商务课总结和体会关于做网站书籍
  • 仪征网站建设公司哪家好简单网页制作素材图片
  • 甘肃第九建设集团公司网站潍坊个人做网站
  • 如何做后台网站的教程网站建设 关于我们
  • 极速网站建设哪家好连云港百度推广网站建设
  • 医院网站建设的目标wordpress中英文网站模板
  • 门户型网站开发难度网站导航栏有哪些