golang 中 go 例程的开销

Jos*_*son 2 go

所以我知道 Go 例程的开销很低,但我想知道它们到底有多好。如果我有一个处理传入消息的服务器,与使用带有通道的标准生产者/消费者模型相比,创建一个新的 go 例程来处理每个传入消息如何?

就像拥有一个高性能的 go 服务器为不断传入的请求生成新的 go 例程一样合理吗?

Raj*_*mar 5

我们实际上正在用类似的方法进行压力测试。我们为每个 http 请求生成新线程。并发性非常好,在 10 秒内我们就达到了大约 100,000 个请求。您可能面临的唯一瓶颈是内存,因为如果所有处理速度不够快,那么您可能会耗尽该进程的内存。

我很确定有一个解决方法,但这就是您想要限制而不是产生无限的 go 例程的原因之一。我们面临的问题是我们试图从另一个 API 获取数据,但该 API 无法跟上这种并发级别。因此,之前提出了节流建议。