使程序佔用CPU穩定在一個輸入值(linux系統)

《編程之美》是基於windows系統的,而我使用的是ubuntu,所以在完成這道題的時候使用的是linux系統
1. top–>查詢當前cpu運行狀態
2. cat /proc/cpuinfo –>主機的cpu信息

/*
 * 編程改變cpu佔用率
 * StoryMonster 2016/7/15
 */

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main(int argc,char** argv)
{
    //argv保存希望維持的cpu佔用率
    //cpu佔用率 = 程序在一個cpu刷新週期內busy時間/cpu刷新週期
    //通過對本機的研究發現:本機每次cpu刷新時間爲3秒
    //但是爲了近可能地適用於更多主機,所以本例使用1秒爲週期
    int busy = atoi(argv[1]);
    busy = busy*1000/100;
    int relax = 1000-busy;
    while(true)
    {
        usleep(relax*1000);                 //usleep使進程掛起relax*1000 微妙
        double tim1 = clock();              //通過此例驗證:clock返回時間單位爲納秒
        double tim2 = clock();
        while(tim2 - tim1 < busy*1000) tim2 = clock();
    }
    return 0;
}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章