Go 为什么fasthttp比net/http快?
基于Web的服务器的速度是Go 为什么fasthttp比net/http快?,go,fasthttp,Go,Fasthttp,基于Web的服务器的速度是net/http的10倍 哪些实现细节使fasthttp更快?此外,它如何比net/http更好地管理传入请求?来自的文章提到: 好的,这是一个更好的实现,原因如下: 工作池模型是一种零分配模型,因为工作池已经初始化并准备好服务,而在stdlib实现中,go c.service()必须为goroutine分配内存 工作池模型更容易调整,因为您可以增加/减少能够接受的工作单元数量的缓冲区大小,而不是stdlib中的fire-and-forget模型 工作池模型允许处理程序
net/http
的10倍
哪些实现细节使fasthttp
更快?此外,它如何比net/http
更好地管理传入请求?来自的文章提到:
好的,这是一个更好的实现,原因如下:
go c.service()
必须为goroutine分配内存@amit verma,但是,请考虑到这个软件包更快的原因之一是速度。因此,如果我是你,为了安全起见,我会从
net/http
开始:喜欢CS/IT的人自然会过度优化,因为我们都喜欢我们的系统是“最好的”。不幸的是,在现实世界中,大多数情况下可维护性都胜过原始速度。@amit verma,好吧,除非你是Facebook,比如说,你可以提供给自己,让自己在项目中进行疯狂的可维护性工作,比如让PHP真正为他们的工作负载工作;-)我的意思是,net/http
经过了战斗测试,符合标准,有核心围棋团队支持。那么,您现在真的需要fasthttp
的原始速度吗?你有瓶颈吗?您是否分析过它并排除了常见的罪魁祸首(如无效的分配/大量指向指向指针的指针等)?主要原因:fasthttp不是HTTP的完整实现。fasthttp可能对大多数HTTP内容都足够好,但不是对所有内容都足够好。@Volker…你能告诉我fasthttp中遗漏了哪些内容吗对于初学者来说,没有HTTP/2支持我测试了一个基准测试,net/HTTP vs fasthttp,非常有趣