go - golang中go例程的开销

标签 go

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

比如拥有一个高性能的 go 服务器是否合理,它可以为传入的请求生成新的 go 例程。

最佳答案

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

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

关于go - golang中go例程的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957807/

相关文章:

network-programming - 谷歌去 : binding multicast socket

Golang 查询字符串作为查询的一部分

go - 未定义(不能引用未导出的字段或方法)

Golang time - 时区显示两次

string - 如何在golang中读取 "\t"作为标签

Go 语言刮刀。如何抓取网站上动态生成的链接?

sql - go-GORM无法插入值

go - 了解缓冲 channel 的工作原理

if-statement - Golang 模板变量 isset

go - 无法将字符串解析为 datastore.Key