cpu占用率让曲线指挥

Posted glblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cpu占用率让曲线指挥相关的知识,希望对你有一定的参考价值。

Github:wxgzgl/LarkNotes

第一题(11月3日)

写一个程序,让用户来决定windows任务管理器的cpu占用率。程序越简单越好,计算机语言不限。 1.cpu的占用率固定在50%,为一条直线; 2.cpu的占用为一条直线 3.cpu的占用状态为一条正弦曲线。

 

解题思路:

要操纵cpu的使用曲线,就需要使cpu在一段时间内跑busy和idle两个不同的循环,从而通过不同的时间比例,来调节cpu使用率。

busy 空循环来实现,idle可以通过sleep来实现

window常用的函数:

sleep() 休眠

getTickCount() 获取当前时间

PerformanceCounter的nextValue()获取当前cpu的使用效能

多核

cpu:getProcessorInfor() 获得多核处理器的信息

setThreadAffinityMask() 指定cpu在哪个处理器上运行

getCpuTicketCount() 拿到cpu运行的周期数

代码清单

1.参数level表示花曲线的百分比
static void makeUsage(float level) {
? PerformanceCounter p = new PerformanceCounter("","","")
? while(true){
? if(p.NextValue() > level) {
sleep(10)    
}
? }
}
?
2.画正弦,无非就是busy和idle的时间是变的,使用数组来存放变化的时间
for(int i =0;i<count;i++) {
? //cpu忙碌的时间
? busySpan[i] = (half+(sin(pi * radian) * half))
? //cpu空闲的时间
? idleSpan[i] = Interval -busySpan[i]
? radian += split;
}
?
while(true) {
? j=j % count;
? startTime = GetTickCount();
? while(GetTickCount()-startTime<=busySpan[i]){
? }
? sleep(idleSpan[j]);
? j++;
}


























以上是关于cpu占用率让曲线指挥的主要内容,如果未能解决你的问题,请参考以下文章

编程之美读书笔记1.1——让CPU占用率曲线听你的指挥

编程之美 之 让CPU占用率听你指挥

cpu占用率曲线-笔记

把 CPU “玩”起来

生成CPU使用率 sin 曲线 控制cpu使用率 编程之美

c程序cpu占用率