第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Go:緩沖通道總和更快?

Go:緩沖通道總和更快?

Go
梵蒂岡之花 2021-07-06 15:58:41
Go:緩沖通道總和更快?在以下游樂場鏈接中,http://play.golang.org/p/8OAbtn6koN一種方法包含緩沖通道,我預計它的性能會更好,因為它不等待同步。 ch := make(chan int, 2)對隨機數(shù)數(shù)組求和的三種方法。我對這三個函數(shù)進行基準測試,如以下鏈接:http://play.golang.org/p/JK3yL4QwOJ我的期望是緩沖通道是異步的,除非通道已滿,否則發(fā)送或接收不需要等待,因此緩沖通道總和比未緩沖通道總和性能更好,因為同步所有 goroutine 不需要任何時間。[問題 1] 所以我為緩沖通道 sum 函數(shù)提供了 3 個緩沖區(qū)大小,但基準測試結(jié)果如下:Benchmarklinear       10   122170091 ns/opBenchmarkchSum        20   121921287 ns/optesting: BenchmarkchSum left GOMAXPROCS set to 4BenchmarkchSumBuffer        20   118524619 ns/optesting: BenchmarkchSumBuffer left GOMAXPROCS set to 4ok    ~/Benchmark_sum_01  4.056s沒有意義,為什么在這種情況下兩個通道的總和表現(xiàn)相同?帶緩沖區(qū)的應(yīng)該表現(xiàn)更好嗎?[問題2]如果我給 ch := make(chan int, 1)我得到Benchmarklinear       10   122170091 ns/opBenchmarkchSum        20   121921287 ns/optesting: BenchmarkchSum left GOMAXPROCS set to 4BenchmarkchSumBuffer        10   118524619 ns/optesting: BenchmarkchSumBuffer left GOMAXPROCS set to 4如果我給 ch := make(chan int, 2)我得到Benchmarklinear       10   122170091 ns/opBenchmarkchSum        10   121921287 ns/optesting: BenchmarkchSum left GOMAXPROCS set to 4BenchmarkchSumBuffer        20   118524619 ns/optesting: BenchmarkchSumBuffer left GOMAXPROCS set to 4但結(jié)果非常不一致。每次運行基準測試時,都會得到不同的結(jié)果。緩沖區(qū)大小與性能無關(guān)?為什么緩沖區(qū)大小為 2 的基準會給我不同的結(jié)果。隨著緩沖區(qū)大小的增加,兩個 goroutine 永遠不會阻塞,因此似乎花費的時間更少。提前致謝。
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

缺乏緩沖是無關(guān)緊要的。在無緩沖通道上有一個掛起的接收。因此,只要您在通道上發(fā)送一個值,它就會被接收,從而釋放通道以供下一次發(fā)送。


查看完整回答
反對 回復 2021-07-12
  • 1 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號