码迷,mamicode.com
首页 > 其他好文 > 详细

cpu占用率让曲线指挥

时间:2020-11-04 18:35:59      阅读:20      评论:0      收藏:0      [点我收藏+]

标签:oid   etc   idle   plain   语言   比例   +=   tail   load   

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占用率让曲线指挥

标签:oid   etc   idle   plain   语言   比例   +=   tail   load   

原文地址:https://www.cnblogs.com/glblog/p/13923302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!