c语言*画心,C语言 实现 控制cpu使用率 画心 源码

本文介绍了如何通过编程技巧精确控制计算机进程的CPU占有率,通过结合空循环、sleep操作和定时函数,实现50%的CPU使用率,并演示了如何在C++中绘制心形曲线作为实例。涉及到了估算CPU运行速度、循环计时和任务管理器监控的方法。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

cpu的占有率是由进程的忙和空闲来决定的,即

rate=(busy_time)/(busy_time+idle_time);

怎么来控制她呢? busy可以用循环(这个循环用空循环,以便好控制),idle可以用sleep

比如先让任务管理器的cpu使用率始终保持在50%左右,那么在一个主循环中,

让空循环和sleep运行同样的一小段时间。sleep的时间好搞,空循环的怎么办呢?可以用cpu的主频估算出运行一个空循环所需要的时间,然后去设定空循环所要运行的次数,

比如:

while(true)

{

//for 循环运行x次,使它的时间和sleep的时间相等

for(int i=0;i

sleep(time);

}

这种要估算cpu的运行速度,不太方便,准确性也不高。

《编程之美》里面介绍一种好的方法。在运行的时候设定空循环的运行时间

int start_time=click();

while((click()-start_time)

这样就能使空循环运行runtime 毫秒

有了这个只要设定一下循环和sleep的比例就可以随意控制任务管理器中的cpu的使用率了,

下面用任务管理器画个弦函数图像

#include

#include

#include

#include

using namespace std;

int main()

{

const float PI=3.1416;

int count=180; //时间数组的个数

int idle[count];

int busy[count];

float delta=2*PI/count;

float alpha=0;

/*

给循环和sleep各生成一列时间数组

busy按照正弦规律变化,busy和对应的sleep的和不变

*/

for(int i=0;i

{

busy[i]=count*(sin(alpha)+1)/2;

idle[i]=count-busy[i];

alpha=alpha+delta;

cout<

}

int j=0;

int st_time;

while(true)

{

j=j%count;

st_time=clock(); //起始时间

while((clock()-st_time)

Sleep(idle[j]);

j++;

}

system("PAUSE");

return 0;

}

看完这些大家知道,怎么在任务管理器里画心了吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值