Windows下测量cpu利用率的类
方法参考网上的一段代码,把它改成了类以方便调用,很简单,但是可以一用,哈哈。
cpu_usage.h
#include <windows.h>
class CpuUsage {
public:
    CpuUsage();
    void init();
    // get cpu usage rate from the last invoke of the function or init
    int get();
private:
    bool inited_;
    ULONGLONG cpu_time_;
    ULONGLONG cpu_idle_time_;
};
cpu_usage.cpp
#include "cpu_usage.h"
CpuUsage::CpuUsage(): inited_(false) {}
void CpuUsage::init() {
    FILETIME ft_sys_idle;
    FILETIME ft_sys_kernel;
    FILETIME ft_sys_user;
    ULARGE_INTEGER ul_sys_idle;
    ULARGE_INTEGER ul_sys_kernel;
    ULARGE_INTEGER ul_sys_user;
    GetSystemTimes(&ft_sys_idle, /* System idle time */
        &ft_sys_kernel,          /* system kernel time */
        &ft_sys_user);           /* System user time */
    CopyMemory(&ul_sys_idle, &ft_sys_idle, sizeof(FILETIME));
    CopyMemory(&ul_sys_kernel, &ft_sys_kernel, sizeof(FILETIME));
    CopyMemory(&ul_sys_user, &ft_sys_user, sizeof(FILETIME));
    cpu_time_ = ul_sys_kernel.QuadPart + ul_sys_user.QuadPart;
    cpu_idle_time_ = ul_sys_idle.QuadPart;
    inited_ = true;
}
// get cpu usage rate from the last invoke of the function or init
int CpuUsage::get() {
    if (!inited_)
        return -;
    FILETIME ft_sys_idle;
    FILETIME ft_sys_kernel;
    FILETIME ft_sys_user;
    ULARGE_INTEGER ul_sys_idle;
    ULARGE_INTEGER ul_sys_kernel;
    ULARGE_INTEGER ul_sys_user;
    GetSystemTimes(&ft_sys_idle, /* System idle time */
        &ft_sys_kernel,          /* system kernel time */
        &ft_sys_user);           /* System user time */
    CopyMemory(&ul_sys_idle, &ft_sys_idle, sizeof(FILETIME));
    CopyMemory(&ul_sys_kernel, &ft_sys_kernel, sizeof(FILETIME));
    CopyMemory(&ul_sys_user, &ft_sys_user, sizeof(FILETIME));
    ULONGLONG interval = ul_sys_kernel.QuadPart + ul_sys_user.QuadPart - cpu_time_;
    int use_rate = (interval - (ul_sys_idle.QuadPart - cpu_idle_time_)) *  / interval;
    cpu_time_ = ul_sys_kernel.QuadPart + ul_sys_user.QuadPart;
    cpu_idle_time_ = ul_sys_idle.QuadPart;
    return use_rate;
}
Windows下测量cpu利用率的类的更多相关文章
- 如何在Windows下用cpu模式跑通py-faster-rcnn 的demo.py
		
关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:本篇blog暂时未经二次实践验证,主要以本人第一次配置过程的经验写成.计划在7月底回家去电脑城借台机子试 ...
 - Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py
		
关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:原文发表在博客园,未经允许不得转载!!!本篇blog过程已经多名读者实践验证,有人反馈报错TypeErr ...
 - Windows下获取CPU频率
		
一直想在Windows下取得CPU的时钟速度,找了好久终于找到了函数CallNtPowerInformation,要想使用它,首先必须包含powrprof.h头文件和链接库powerprof.lib. ...
 - python在windows下获取cpu、硬盘、bios、主板序列号
		
测试 此处使用的是wmi库,可以去google里面搜索“python wmi” import os, sysimport timeimport wmi,zlib def get_cpu_info() ...
 - windows下 Memcache cpu占用过高
		
分析应该是memcache的内存大小还是默认配置,已经满足不了当前的大数据量的需要了,大量的新缓存需要进入,同时大量的旧缓存又需要被淘汰出来,一进一出导致CPU占用过多. 进入注册表,找到:HKEY_ ...
 - 浅谈Linux下CPU利用率和CPU负载【转】
		
转自:https://blog.csdn.net/Alisa_xf/article/details/71430406 在Linux/Unix下,CPU利用率(CPU utilization)分为用户态 ...
 - Linux下CPU利用率和负载的关系
		
1.CPU利用率和负载 CPU利用率显示的是程序在运行期间实时占用的CPU百分比:cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进 ...
 - linux下实现CPU使用率和内存使用率获取方法
		
想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了. 方法就是读取proc下的文件来获取了. cpu使用率: /proc/stat ,内存使用情况: /p ...
 - Linux下 查看CPU信息
		
参考: Linux和Windows下查看cpu和core个数 Linux下 查看CPU信息 1.查看完整CPU信息: $ cat /proc/cpuinfo 2.查看逻辑cpu个数: $ cat /p ...
 
随机推荐
- SQLPLUS的乱码问题
			
我的中文系统,把对应非unicode字符时的设置,改成了 日文, 结果控制台使用sqlplus时候,总是出现乱码. 解决方法是,把NLS_LANG环境变量变成跟系统一样,就可以了. american_ ...
 - Spring4 MVC HelloWorld 注解和JavaConfig实例
			
在这一节中,我们以 Spring4 MVC HelloWorld 注释/JavaConfig为示例,一步一步以简单的方式学习Spring4 MVC 的注解,项目设置,代码,部署和运行. 在先前的 Sp ...
 - TCP/UDP协议
			
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
 - 身份证&银行卡识别方案
			
一. 调用第三方服务 腾讯云OCR识别: 实现方法:Post图片 URL到腾讯云服务器.Post图片文件 到腾讯云服务器 b. 报价: 月接口调用总量 0<调用量≤1000 1000&l ...
 - New Concept English Two 8 19
			
pls practice every day $课文17 青春常驻 161. My aunt Jennifer is an actress. 我的姑姑詹妮弗是位演员, 162. She must b ...
 - iOS-----使用GCD实现多线程
			
使用GCD实现多线程 GCD的两个核心概念如下: 队列 队列负责管理开发者提交的任务,GCD队列始终以FIFO(先进先出)的方式来处理任务---但 由于任务的执行时间并不相同,因此先处理的任务并一定先 ...
 - 《DSP using MATLAB》Problem 2.15
			
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
 - 10013: 以一种访问权限不允许的方式做了一个访问套接字的尝试【WCF异常】
			
错误代码:10013 异常描述:侦听 IP 终结点=0.0.0.0:6666 时出现 TCP 错误(10013: 以一种访问权限不允许的方式做了一个访问套接字的尝试.). 解决方式:由于端口6666被 ...
 - Pandas Timestamp 和 python 中 datetime 的互相转换
			
Pandas 的Timestamp 和 python 的 datetime, 这是两种不同的类型. 它们之间可以互相转换. refer to: https://www.jianshu.com/p/ ...
 - Python编程核心内容  ----  切片、迭代和列表生成式
			
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 最近太忙啦.很多事情需要自己处理,感觉时间不够用啊~~~~今后,博客更新时间可能会慢下来(但不能荒废了学习,要学习就 ...