執行緒池效能測試

2021-09-22 14:10:32 字數 1552 閱讀 9190

eterfree執行緒池以乙個基於boost程式庫的執行緒池為參照執行緒池,分別在不同硬體、不同作業系統的計算機對兩種執行緒池進行效能測試。

用於效能測試的四台計算機,其配置資訊如表所示:

cpu型號

cpu核心頻率

cpu核心數量

cpu執行緒數量

記憶體容量

作業系統

系統位數

intel core i3-3110m

2.4ghz24

4gbwindows 8.0 專業版

64intel core i5-6200u

2.3-2.8ghz24

8gbwindows 10 家庭中文版

64amd ryzen 3 pro 1200

3.1-3.4ghz44

8gbwindows 10 企業版

64amd ryzen 7 4800h

2.9-4.2ghz816

16gb

windows 10 家庭中文版

64最近一次以visual studio 2019編譯x64 release版本的測試程式,一共進行10次測試,每次測試以100個執行緒執行300000個相同任務。記錄執行緒池執行的任務數和所用時間,計算每毫秒執行的任務數,最終取執行任務的平均速度。

任務**如下所示:

#include

#include

#include

static std::atomic_ulong counter =0;

static

void

task()

測試**位於原始檔test.cpp。

test.cpp

記錄最近一次的測試資料,eterfree執行緒池的測試資料如表所示:

測試次數

任務數量(個)

執行時間(毫秒)

執行速度(個/毫秒)

1255518

10036

25.460143

2255552

10034

25.468607

3255335

10034

25.446980

4254937

10035

25.404783

5255253

10033

25.441344

6255274

10047

25.407982

7255653

10043

25.455840

8255473

10044

25.435384

9256039

10050

25.476517

10255527

10045

25.438228

平均255456.1

10040.1

25.443581

測試結果顯示,eterfree執行緒池平均每毫秒執行25.443581個任務。eterfree執行緒池與參照執行緒池在伯仲之間,或許在效能上略優於參照執行緒池。

mysql 執行緒池測試 MySQL執行緒池測試

mysql執行緒池 thread pool 的處理 在預設的mysql的連線模型中,乙個連線對應乙個mysql伺服器的執行緒來處理連線請求 很類似於oracle的專用伺服器連線 在某些情況這種配置可能會導致一些問題,比如以下情形 1,伺服器同時太多活動連線線程,而cpu個數有限,會導致context...

程序池 執行緒池效率測試

之前我們分別對計算密集型和io密集型任務,測試過多執行緒對執行效率的改進,下面我們依然分計算密集 檔案讀寫 網路請求三個部分,測試使用執行緒池 程序池如何改進執行效率 首先導入庫並定義三種任務的函式 import requests from bs4 import beautifulsoup impo...

執行緒池的設計與測試

編寫了乙個最基本的執行緒池類,處理用c work表示的工作任務。c 還很不熟練,歡迎會c 的提出寶貴的修改意見。程式有注釋,所以應該很好讀懂。測試程式在下面。cpp view plain copy print?執行緒池類 include include include include include...