多个goroutine处理一批数据(一个长度为2000万的切片),但是 随着协程数量的增加,每个goroutine处理的时间不一样(处理的数据是平均分摊的),相差很大。例如机器32核,4个goroutine并发处理的时间是400ms左右,有4个CPU的使用率近100%,但是32个goroutine并发处理耗时从200ms到800ms不等,为什么会差别这么大,而且CPU无法100%利用,使用率压不上去。我有看gc日志,期间没有gc,并且没有锁。
有疑问加站长微信联系(非本文作者)