第一眼看到這個題目,本人確實是沒有多大思路的。因為一直沒有對效能和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的話還是算了,資料大概根本傳不過來。電腦需要保持開機狀態且不能是休眠狀...
學會控制自己的情緒
生活中難免有很多很讓人討厭的事情。比如熟睡中被吵醒 專心幹一件事時被打擾 有急事時 老打不通,工作時電腦老宕機,等等。對於乙個整天與電腦為伴的程式設計師來說,電腦的不給力是最讓人頭疼的,就像田徑運動員沒有合適的跑鞋,怎麼都不爽。這種鬱悶就剩摔杯子了。最近我的電腦老是出問題,動不動藍屏,一閃而過,怎麼...