一直在想程式上是否特意讓執行緒在指定的cpu上去執行,這樣可以提高執行效率,所以特地寫個**讓cpu使用率畫正弦曲線的實驗,我使用的是amd x4 641的cpu,為四核四執行緒的**。
**如下
#include "不指定cpu,發現,貌似系統會平分一下到第一和第二個cpu的使用stdafx.h
"#include
#include
#include
#include
using
namespace
std;
//得到迴圈0xffffffff次用的秒數
unsigned int
test()
#define t 20000 //
週期時間 20秒
#define c 100 //
取樣點時間間隔
#define pi 3.1415 //
piconst unsigned int count = 0xffffffff / (test() *1000); //
取樣間隔可以執行的迴圈數目
const unsigned int n = t/c; //
週期內取樣點數目
unsigned int v[n] = ; //
所有取樣點連續執行迴圈數
unsigned int mt[n] = ; //
所有取樣點休眠毫秒數
intmain()
for(;;)}}
指定在第乙個cpu上執行的話,效果如下:
指定執行在第二個cpu上,效果如下:
指定在第三個cpu上執行,效果如下:
指定在第四個cpu上執行的話,效果如下:
如果指定的話,那麼會固定使用那個指定的cpu,但是有一點比較納悶的,指定執行在第乙個和第二個上沒問題,指定執行在第三個上,不知道執行在哪個上了,而指定執行在第4個上,卻執行第3個cpu上,難道是我的cpu有問題,明明是四核四執行緒的cpu,為什麼指定在第3個上,沒效果,而指定在第四個上卻執行在第3個上呢。
這是amd的cpu的測試結果,不知道intel的cpu上是不是一樣的效果。
我想換個intel的八核十六執行緒的cpu,感覺現在這個四核四執行緒的應付不過來平時的工作了。
等換了八核十六執行緒的**以後,再做下測試。
利用CPU多核處理
在mysql5.5.x後,可以利用innodb read io threads和innodb write io threads,取代之前的innodb file io threads引數,在linux平台上就可以根據cpu核數來更改相應的引數值,預設是4.比如cpu是2棵8核的,可以設定 innod...
python利用多核CPU實現mapreduce
1.最近公司用有個比較奇怪的需求,需要在流水中查詢某一條符合條件的流水記錄,記錄是在hdfs上的,按天存在檔案中,但是檔案都比較大,每天大概是25g的流水資料,現在提供刷卡回執單去查詢該消費記錄在我們hdfs上的對應的記錄,從而可以找到某個資訊 不能說是哪個。2.刷卡回執單我們可以找到卡號前6位 後...
用 taskset 充分利用多核cpu
常常感覺系統資源不夠用,一台機子上跑了不下3個比較重要的服務,但是每天我們還要在上面進行個備份壓縮等處理,網路長時間傳輸,這在就很影響本就不夠用的系統資源 這個時候我們就可以把一些不太重要的比如copy 備份 同步等工作限定在一顆cpu上,或者是多核的cpu的一顆核心上進行處理,雖然這不一定是最有效...