1 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
GOMAXPROCS
默認(rèn)情況下設(shè)置為可用邏輯 CPU 的數(shù)量是有原因的:這在大多數(shù)情況下提供最佳性能。
GOMAXPROCS
僅限制“活動(dòng)”線程的數(shù)量,如果線程的 goroutine 被阻塞(例如通過系統(tǒng)調(diào)用),則可能會(huì)啟動(dòng)新線程。
如果GOMAXPROCS
大于可用 CPU 的數(shù)量,則活動(dòng)線程數(shù)將多于 CPU 核心數(shù),這意味著活動(dòng)線程必須“多路復(fù)用”到可用處理單元,所以是的,如果有更多的線程,將會(huì)有更多的上下文切換活動(dòng)線程多于核心,但情況不一定如此。
垃圾收集與線程數(shù)沒有直接關(guān)系,因此您不必?fù)?dān)心這一點(diǎn)。引用自包runtime
:
GOGC 變量設(shè)置初始垃圾收集目標(biāo)百分比。當(dāng)新分配的數(shù)據(jù)與上次收集后剩余的實(shí)時(shí)數(shù)據(jù)的比例達(dá)到此百分比時(shí),將觸發(fā)收集。默認(rèn)值為 GOGC=100。設(shè)置 GOGC=off 會(huì)完全禁用垃圾收集器。運(yùn)行時(shí)/調(diào)試包的 SetGCPercent 函數(shù)允許在運(yùn)行時(shí)更改此百分比。
如果您有更多不分配/釋放內(nèi)存的線程,那么這不會(huì)影響觸發(fā)集合的頻率。
在某些情況下,設(shè)置GOMAXPROCS
高于 CPU 數(shù)量可能會(huì)提高應(yīng)用程序的性能,但這種情況很少見。衡量一下它是否對您的情況有幫助。
- 1 回答
- 0 關(guān)注
- 182 瀏覽
添加回答
舉報(bào)