background image

【目录】

不考虑其他进程,

cpu 画正弦曲线

获取总体

cpu 利用率

获取多核处理器单个

cpu 利用率

考虑其他进程,

cpu 画正弦曲线

 

下面的程序针对多核处理器,可以设置让任何一个

cpu 显示相应的曲线(本文以正弦曲线

为例)

代码编译环境:

windows 7 64 位 酷睿 i5 处理器,vs2010.

可以修改

CpuSin 函数的计算 busySpan 和 idleSpan 的部分以显示不同的曲线。

下面的代码没有考虑

cpu 中其他进程的占用情况,这种情况详见第二部分

1

 #include <windows.h>

 

2

 #include <stdio.h>

 

3

 #include <math.h>

 

4

 

 

5

 

//把一条正弦曲线 0~2pi 之间的弧度等分 200 份抽样,计算每个点的振幅

 

6

 

//然后每隔 300ms 设置下一个抽样点,并让 cpu 工作对应振幅时间

 

7

 

const

 

int

 samplingCount = 

200

//抽样点数目

 

8

 

const

 

double

 pi = 

3.1415926

;

 

9

 

const

 

int

 totalAmplitude = 

300

//每个抽样点对应时间片

10

 

const

 

double

 delta = 

2.0

/samplingCount;  

//抽样弧度的增量

11

 

12

 

int

 busySpan[samplingCount];

//每个抽样点对应的 busy 时间

13

 

int

 idleSpan[samplingCount];

//每个抽样点对应的 idle 时间

14

 

15

 

//一个线程调用 MakeUsageSin,并把该线程绑定到一个 cpu,那么该 cpu 呈现正弦曲

线

16

 DWORD WINAPI MakeUsageSin(LPVOID lpParameter)