程序控制cpu占用率介紹 線程cpu占用率

程序控制cpu占用率介紹 線程cpu占用率

我們知道任務管理器每一秒鐘刷新一次,這就要在這一秒鐘內,使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
【程序控制cpu占用率介紹 線程cpu占用率】
#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;
}

經驗總結擴展閱讀