来源: 最后更新:23-10-27 12:09:55
我们知道任务管理器每一秒钟刷新一次,这就要在这一秒钟内,使CPU的平均使用时间和空闲时间各占50%. 而不是让CPU使用1秒钟,空闲一秒钟。windows的调度时间片为10ms, 那么在编程时可以让cpu不停的工作10ms, 然后空闲10ms, 空闲操作通过sleep(10)来实现。这样最后任务管理器在刷新CPU占用率的时候就会得到这个一秒钟内的CPU的平均使用率。显示出50%的水平。
通过空循环,来让cpu保持繁忙的工作状态,通过sleep使cpu空闲。机器指令最接近的是汇编语言。而空的for 循环,换成汇编语言是大概5句,现在的CPU可以在一个时钟周期执行两个机器指令,相当于执行两个汇编语句。
现在假设电脑的主频是3.2G,则每秒可以执行 3200000000*2/5=1280000000条空循环语句。 应该分时间片的执行一个时间片10ms, 所以执行空循环应该为12800000次。
因此用C语言可以这样编写程序:
#include
int main(int argc, char *argv[])
{
long n=12800000; //n表示执行的空循环次数
int i=0;
while(1)
{
for(i=0;i
{
//空循环
}
sleep(10);
}
system("PAUSE");
return 0;
}
帮同学化妆最高日入近千 帮朋友化妆帮同学化妆最高日入近千?浙江大二女生冲上热搜,彩妆,妆容,模特,王
2023吉林省紧缺急需职业工种目录政策解读 2024张杰上海演唱会启东直通车专线时间+票价 马龙谢幕,孙颖莎显示统治力,林诗栋紧追王楚钦,国乒新奥运周期竞争已启动 全世界都被吓了一跳(全世界都被吓了一跳是什么歌)