多核CPU利用測試

2022-07-14 14:33:18 字數 1754 閱讀 4452

一直在想程式上是否特意讓執行緒在指定的cpu上去執行,這樣可以提高執行效率,所以特地寫個**讓cpu使用率畫正弦曲線的實驗,我使用的是amd x4 641的cpu,為四核四執行緒的**。

**如下

#include "

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上執行,效果如下:

指定在第四個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的一顆核心上進行處理,雖然這不一定是最有效...