亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在完全受 CPU 限制的工作負載中限制 go 例程的數量是否必要?

在完全受 CPU 限制的工作負載中限制 go 例程的數量是否必要?

Go
慕標5832272 2022-09-26 19:45:46
如果是,如何確定最大值?這對我來說是最重要的部分。我真的很想手動設置它。我考慮過使用 ,因為我懷疑更多的并行性會產生任何額外的好處。該注釋似乎表明,它在某些時候被標記為棄用。runtime.GOMAXPROCS(0)從我收集到的信息來看,當涉及到圍棋例程時,唯一的限制因素是記憶,因為睡眠的圍棋例程仍然需要內存來堆疊。
查看完整描述

3 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這并不是絕對必要的。默認情況下,運行這些 goroutine 的線程數等于計算機上的 CPU 內核數(可通過 進行配置),因此在線程級別不會發生爭用。GOMAXPROCS

但是,由于內存緩存效應,準備運行的 goroutine 更少,可能會帶來性能優勢。例如,在 8 核計算機上,如果您有 1000 個活動 goroutine,這些 goroutine 都接觸到大量內存,則當一個 goroutine 再次運行時,所需的內存頁面可能已經從 CPU 緩存中逐出。使用較少的戈魯丁,緩存命中的幾率更高。

與性能問題一樣:確定的唯一方法是使用具有代表性的工作負載自己進行測量。


查看完整回答
反對 回復 2022-09-26
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

在我們的測試中,我們確定最好生成固定數量的 worker 例程,并使用這些例程來執行所有工作。戈魯丁的創建和破壞是輕量級的,但并非完全沒有開銷。如果戈魯廷花費任何時間阻塞,則該開銷通常微不足道。


查看完整回答
反對 回復 2022-09-26
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

goroutines非常輕量級,因此它完全取決于您運行的系統。平均進程在4GB Ram中少于一百萬個并發例程應該沒有問題。當然,這是否適用于您的目標平臺,在不知道該平臺是什么的情況下,我們無法回答。

看到這篇文章這個,他們是有用的


查看完整回答
反對 回復 2022-09-26
  • 3 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號