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