udp接收到資料后,進行運算處理,運算量比較大,如何使用多核進行處理?現在我使用threadpool進行處理只能使用一個cpu核
uj5u.com熱心網友回復:
C#的話,用TPL,也就是tasks下面的并行呼叫,比如Parallel.Foruj5u.com熱心網友回復:
你怎么知道使用了一個cpu核?多執行緒不一定快,若你是雙核,最好開4個執行緒
uj5u.com熱心網友回復:
業務流程打簡單說是這樣的,我接收資料包每秒4000包左右,每個資料包進行json處理,取里面的時間資訊,然后進行發送處理,我用parallel.for和foreach都不知道如何寫
uj5u.com熱心網友回復:
電腦cpu為六核,資料積壓的時候,觀察性能也只用了cpu的16%
uj5u.com熱心網友回復:
將接收到的包快取到安全佇列里,開出12個執行緒(數量以測驗為最佳為準),都從安全佇列取資料并發出去uj5u.com熱心網友回復:
目前采用是concurrentqueue,使用threadpool處理佇列資料,限制在于處理的計算量大,問題是怎么呼叫更多cpu來計算uj5u.com熱心網友回復:
個人認為,調度CPU是作業系統的事cpu利用率低,可能存在瓶頸問題,例如記憶體,發送時網路快慢等
可以使用類似loadrunner的工具進行檢測
uj5u.com熱心網友回復:
參見#1的意見。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/109150.html
標籤:C#
上一篇:請教AutoCAD二次開發的問題
