有趣的程式設計 控制自己電腦的CPU

2021-06-19 04:10:13 字數 3658 閱讀 3101

第一眼看到這個題目,本人確實是沒有多大思路的。因為一直沒有對效能和cpu占用上考慮太多。真正看書查資料弄完才覺得確實很不錯的乙個應用題。以下將一步步完成控制的任務。

作業系統:win 7 32位

cpu: intel i7 2630qm(2.0ghz 4核8執行緒)

因為程式在多cpu下會效果顯示混亂,所以需要**來指定程式在哪個cpu下執行。

可以用windows api來指定cpu,**如下:

[cpp]view plain

copy

print?

//讓程序在指定處理器上執行(在第乙個cpu上執行, 對多cpu的處理)

setprocessaffinitymask(  

getcurrentprocess(),  

0x00000001          //cpu mask

);  

//讓程序在指定處理器上執行(在第乙個cpu上執行, 對多cpu的處理)

setprocessaffinitymask(

getcurrentprocess(),

0x00000001 //cpu mask

);

cpu有兩種狀態:

控制死迴圈

控制睡眠

windows資源管理器:顯示的cpu曲線是一條記錄型的曲線,會記錄cpu的當前的佔用率,然後慢慢繪製成線。

[cpp]view plain

copy

print?

#include 

#include 

#include "windows.h"

//控制cpu , 需要計算cpu執行時間 

int main()  

//system("pause");

return 0;  

}  

#include #include #include "windows.h"

//控制cpu , 需要計算cpu執行時間

int main()

//system("pause");

return 0;

}

執行效果:

可以看出,效果不是很好。人工計算肯定是不準確的!而且其他程式也會占用cpu。

這樣做的好處就是不用估算cpu的頻率了,較上面的方法肯定好多了。

[cpp]view plain

copy

print?

#include 

#include 

#include "windows.h"

//控制cpu

int main()  

//system("pause");

return 0;  

}  

#include #include #include "windows.h"

//控制cpu

int main()

//system("pause");

return 0;

}

效果:

當然效果也一般,為下面的做鋪墊。

要想畫出正弦函式曲線,cpu忙的時間必須是慢慢遞增的,然後遞減。而cpu閒的時間必須是慢慢遞減然後遞增。

這樣就是乙個週期。最後一直迴圈重複即得到正弦函式曲線。

一下列印出部分忙閒時間關係:

int interval = 300;   //間隔時間 

//畫出一條正弦曲線

int _tmain(int argc, _tchar* argv)  

//測試:輸出忙與閒時的時間陣列, 寫入檔案result.txt

file *fp;                    

fp = fopen("result.txt", "a+");    //a+表示追加方式

for(int i = 0; i 

fclose(fp);  

//2. 畫曲線 

dword starttime = 0;          

int j = 0;  

while (true)  

return 0;  

}  

#include #include #include #include #include const double split = 0.01;

const int count = 200;

const double pi = 3.14159265;

const int interval = 300; //間隔時間

//畫出一條正弦曲線

int _tmain(int argc, _tchar* argv)

//測試:輸出忙與閒時的時間陣列, 寫入檔案result.txt

file *fp;

fp = fopen("result.txt", "a+"); //a+表示追加方式

for(int i = 0; i < count; i++)

fclose(fp);

//2. 畫曲線

dword starttime = 0;

int j = 0;

while (true)

return 0;

}

執行效果:

改變間隔時間interval = 100; 時可以相應使週期減小:

參考《程式設計之美》與 網際網路

有趣的程式設計 控制自己電腦的CPU

第一眼看到這個題目,本人確實是沒有多大思路的。因為一直沒有對效能和cpu占用上考慮太多。真正看書查資料弄完才覺得確實很不錯的乙個應用題。以下將一步步完成控制的任務。作業系統 win 7 32位 cpu intel i7 2630qm 2.0ghz 4核8執行緒 因為程式在多cpu下會效果顯示混亂,所...

如何用手機遠端控制自己的電腦

teamviewer可以解決這個問題。3而且該軟體電腦端支援windows,蘋果系統,linux 系統,手機端也是安卓,蘋果,windows 系統都支援。1注意事項 電腦和手機都必須可以上網,通過網路連線,網速當然是越快越好,2g的話還是算了,資料大概根本傳不過來。電腦需要保持開機狀態且不能是休眠狀...

學會控制自己的情緒

生活中難免有很多很讓人討厭的事情。比如熟睡中被吵醒 專心幹一件事時被打擾 有急事時 老打不通,工作時電腦老宕機,等等。對於乙個整天與電腦為伴的程式設計師來說,電腦的不給力是最讓人頭疼的,就像田徑運動員沒有合適的跑鞋,怎麼都不爽。這種鬱悶就剩摔杯子了。最近我的電腦老是出問題,動不動藍屏,一閃而過,怎麼...