影响goroutine的因素';s的表现
我在使用goroutine时遇到一些奇怪的行为,请就我可能做错的事情提供建议或意见。以下是我的流程: 我正在使用goroutines同时执行模拟,但由于某种原因,我花费的时间随着我加入的goroutines数量的增加而增加,这使得我的模拟不可能在合理的时间内完成。以下是我注意到的事情:影响goroutine的因素';s的表现,go,Go,我在使用goroutine时遇到一些奇怪的行为,请就我可能做错的事情提供建议或意见。以下是我的流程: 我正在使用goroutines同时执行模拟,但由于某种原因,我花费的时间随着我加入的goroutines数量的增加而增加,这使得我的模拟不可能在合理的时间内完成。以下是我注意到的事情: 对于每启动10k goroutine,计算时间将增加5秒 我看不出CPU或内存不足。然而,每10k goroutine的CPU使用量只会增加一点点。例如,当我放置200k goroutines时,CPU使用率约为
是否有人对我可能需要优化的事情有线索,或者建议我进行任何测试?谢谢 启动几个“worker”goroutines,并通过频道向其发送“jobs”。您可以节省大量占用CPU的内存分配 您的go例程是否正在修改结构的数据?如果您的所有go例程都在连续运行(即不阻塞i/O),那么您的go例程数量超过系统可以同时运行的线程数量,将不会获得任何性能优势。事实上,有更多的goroutine会减慢速度,因为在它们之间切换会产生开销。