首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么fasthttp比net/http更快?

为什么fasthttp比net/http更快?
EN

Stack Overflow用户
提问于 2017-01-13 13:31:35
回答 1查看 21.7K关注 0票数 32

基于fasthttp的服务器比net/http快10倍。

哪些实现细节让fasthttp变得更快?此外,它如何比net/http更好地管理传入的请求

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-13 13:41:37

来自husobee的文章"http implementation fasthttp in golang“提到:

嗯,这是一个更好的实现,原因有几个:

  1. 工作者池模型是零分配模型,因为工作者已经初始化并准备好服务,而在stdlib实现中,go c.serve()必须为goroutine分配内存。
  2. 工作者池模型更容易调整,因为您可以增加/减少您能够接受的工作单元数量的缓冲区大小,而不是stdlib
  3. 中的即发即忘模型。工作者池模型允许处理程序通过通道通信更多地与服务器连接,例如,如果服务器需要关闭,与标准库中的implementation
  4. The处理程序函数定义签名相比,它将能够更容易地与工作程序通信,因为它只接受包含处理程序所需的请求和编写器的上下文。这比标准库要好得多,因为从stdlib得到的只是一个请求和响应编写器…在go1.7中将上下文包含在请求中的工作几乎是一种黑客行为,目的是在不破坏任何人的情况下为人们提供他们真正想要的(上下文)。

总体而言,最好是编写一个具有工作者池模型的服务器来为请求提供服务,而不是只为每个请求产生一个“线程”,而没有办法开箱即用。

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41627931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档