在8核cpu 15G内存的设备上开启10万个协程处理10万条数据 没有任何log打印的情况下 耗时4min,查看设备信息 cpu最高峰才使用141% 内存最高才占用8% ,为什么这么慢呀,协程并发处理感觉没用上
有疑问加站长微信联系(非本文作者)

在8核cpu 15G内存的设备上开启10万个协程处理10万条数据 没有任何log打印的情况下 耗时4min,查看设备信息 cpu最高峰才使用141% 内存最高才占用8% ,为什么这么慢呀,协程并发处理感觉没用上
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
建议打开
pprof
在线上看运行中的协程数目以及heap 建议在main函数中开启一个新协程显示runtime信息代码手打的,如果有错别字请见谅。
运行程序,打开浏览器
http://localhost:8080/debug/pprof
你要的数据就会出现了
虽然协程切换有开销,处理10万条数据也不至于这么慢
最好贴源码,方便大家帮你找问题
主要得看协程里具体做的事情,如果是IO任务,启动10万个应该不至于这么慢,如果是计算密集型的任务,最好设计成go routine+channel的任务模式,这样才能减少go routine的切换开销
高并发和高性能是两回事