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...