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

2021-08-01 18:03:29 字數 2648 閱讀 8698

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

作業系統:win 7 32位

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

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

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

[cpp]view plain

copy

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

setprocessaffinitymask(  

getcurrentprocess(),  

0x00000001          //cpu mask

);  

cpu有兩種狀態:

控制死迴圈

控制睡眠

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

[cpp]view plain

copy

#include 

#include 

#include "windows.h"

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

intmain()  

//system("pause");

return

0;  

}   執行效果:

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

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

[cpp]view plain

copy

#include 

#include 

#include "windows.h"

//控制cpu

intmain()  

//system("pause");

return

0;  

}   效果:

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

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

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

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

//間隔時間 

//畫出一條正弦曲線

int_tmain(

intargc, _tchar* argv)  

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

file

*fp;                    

fp = fopen("result.txt"

, "a+"

);    

//a+表示追加方式

for(

inti = 0; i 

fclose(fp);  

//2. 畫曲線 

dword

starttime = 0;          

intj = 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的話還是算了,資料大概根本傳不過來。電腦需要保持開機狀態且不能是休眠狀...

學會控制自己的情緒

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