获取进程CPU占用率

// 时间转换
static __int64 file_time_2_utc(const FILETIME* ftime)
{LARGE_INTEGER li;li.LowPart = ftime->dwLowDateTime;li.HighPart = ftime->dwHighDateTime;return li.QuadPart;
}// 获得CPU的核数
static int get_processor_number()
{SYSTEM_INFO info;GetSystemInfo(&info);return (int)info.dwNumberOfProcessors;
}
// 获取进程CPU占用
int get_cpu_usage(int pid)
{  //cpu数量static int processor_count_ = -1;//上一次的时间static __int64 last_time_ = 0;static __int64 last_system_time_ = 0;FILETIME now;FILETIME creation_time;FILETIME exit_time;FILETIME kernel_time;FILETIME user_time;__int64 system_time;__int64 time;__int64 system_time_delta;__int64 time_delta;int cpu = -1;if(processor_count_ == -1){processor_count_ = get_processor_number();}GetSystemTimeAsFileTime(&now);HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, pid);if (!GetProcessTimes(hProcess, &creation_time, &exit_time, &kernel_time, &user_time)){return -1;}system_time = (file_time_2_utc(&kernel_time) + file_time_2_utc(&user_time)) / processor_count_;time = file_time_2_utc(&now);if ((last_system_time_ == 0) || (last_time_ == 0)){last_system_time_ = system_time;last_time_ = time;return -1;}system_time_delta = system_time - last_system_time_;time_delta = time - last_time_;if (time_delta == 0)return -1;cpu = (int)((system_time_delta * 100 + time_delta / 2) / time_delta);last_system_time_ = system_time;last_time_ = time;return cpu;
}

转载于:https://www.cnblogs.com/lzpong/p/3955891.html

获取进程CPU占用率相关推荐

  1. linux c 获取进程 cpu占用率 内存占用情况

    实例如下: #include <stdio.h> #include <unistd.h> #include <sys/time.h> #include <st ...

  2. hint ksql oracle_性能测试中发现oracle11g数据库每天22点,oralce进程CPU占用率突增

    你的位置: 问答吧 -> Oracle -> 问题详情 性能测试中发现oracle11g数据库每天22点,oralce进程CPU占用率突增 每天都会报以下信息(alert.log): CJ ...

  3. java获得某进程CPU占用率

    昨天碰到一个问题,用java根据进程号获得该进程的CPU占用率. 在网上找了很多例子,都是用一个sigar.jar包去做的,下载下来以后,根据示例代码,发现获得的进程CPU占用率都是0.0,不知何故. ...

  4. kernel_task 进程 CPU 占用率高导致 mac 卡顿问题

    kernel_task 进程 CPU 占用率高导致 mac 卡顿问题 问题 这个问题已经遇到多次了,在 mac 使用中会突然变得非常卡顿,查看活动监视器发现 kernel_task 进程 cpu 占用 ...

  5. windows服务器system进程cpu占用率高解决方案(ntoskrnl.exe)

    之前给客户服务器部署过服务器监控程序,今天收到邮件告警提醒CPU过高,进入监控发现System进程突然升高,这个是系统进程,只查看进程cpu占用率没用,需要去查看System进程里的线程,具体是由那个 ...

  6. 关于android 进程CPU占用率高的原因分析

    *记录开发中的问题,方便以后自已回忆,2017-07-17 记录 在开发一个语音的线程中,发现有如下事情,系统越来越慢,也越来越卡,打到 adb shell 输 入 top 查看系统资源,发现 CPU ...

  7. Win10Tiworker.exe进程CPU占用率过高的解决办

    在某些情况下,TiWorker.exe会导致CPU高达100%,而用户感觉最明显的就是风扇不停的转动且电脑也会有些卡顿,这时极有可能是系统在安装一些系统模块,如Windows Update正在自动下载 ...

  8. cidaemon.exe进程cpu占用率高及关闭cidaemon.exe进程方法

    问题描写叙述: 这段时间机器总是出现一个奇怪的问题:cidaemon.exe进程占用CUP率98%以上,大大影响了电脑的正常使用.资源管理器中出现多个cidaemon.exe进程,强制结束占用cpu率 ...

  9. FreeBSD:从内核获取其他进程的pid及cpu占用率

    最近在做一个项目,需要内核监控一个本机用户进程cpu占用率, 当时考虑有以下几种方法: 1,使用ps命令获取. 方法简单,直接执行命令,再过滤就行.但是从内核调用命令,查了一下,好像Linux可以使用 ...

最新文章

  1. 17. javacript高级程序设计-错误处理与调试
  2. 变更AD计算机名称和IP地址
  3. iframe内联元素有白边原因_必看|番茄卷叶病发生的原因以及防治方法!
  4. C#预处理器指令 用法
  5. mysql8 win10_window10下安装多个MySQL8.0
  6. 腾讯叮当智能屏发布,主打视听体验、海量内容、儿童模式
  7. mysql root dengru_Mysql学习Mysql中文汉字转拼音的实现(每个汉字转换全拼)
  8. apache2 html文件夹,需要与我的Apache2网站配置文件
  9. StanfordDB class自学笔记 (16) 心得体会
  10. 移动通信USSD业务探讨(转)
  11. thinkpad电源管理解决办法 win2019
  12. python爬虫由浅入深8---基于正则表达式查询的淘宝比价定向爬虫
  13. maya表情blendshape_带BlendShape表情的动作文件播放异常
  14. Android新手如何学习开发一款app?
  15. jQuery自定义插件
  16. 拉丁超立方——样本点空间转换
  17. Office-页码全为0的原因及解决方法
  18. 计算机系统安全启动,关闭电脑的安全启动项( Secure Boot )
  19. java.net.Url类的应用 以及URL的学习
  20. 04-如何选购台式电脑显卡?小白装机通俗易懂的独立显卡知识指南

热门文章

  1. 状态反射在体育运动中的作用_建筑用热反射隔热涂料的研究进展
  2. java servlet接口开发_servlet三种实现方式之一实现servlet接口
  3. python3基础知识_python3基础知识梳理
  4. 深入分析存储器的位宽及与C的关系
  5. 无监督学习 k-means_无监督学习-第3部分
  6. 图像分割过分割和欠分割_使用图割的图像分割
  7. 贝叶斯优化神经网络参数_贝叶斯超参数优化:神经网络,TensorFlow,相预测示例
  8. 鲶鱼效应:为什么要适当的贷款?
  9. 安卓动画知识总结 Animation AnimationSet LayoutAnimation
  10. VC++静态文本框/PICTURE控件的notify属性