相关软件
fasthttp是一个用于Go的快速HTTP包,针对高性能进行了调整,在热路径中实现零内存分配,比net/http快10倍以上,目前,fasthttp被VertaMedia成功地用于生产中,为每台物理服务器上超过150万个并发的保持连接提供200K rps的服务。
常见问题
为什么要创建另一个http包而不是优化net/http?
因为 net/http API 限制了许多优化机会。比如说。
net/http 请求对象的寿命不受请求处理器执行时间的限制。所以服务器必须为每个请求创建一个新的请求对象,而不是像 fasthttp 那样重复使用现有的对象。
net/http 头信息被存储在 map[string][]string 中。所以服务器必须解析所有的头信息,将它们从[]字节转换成字符串,并在调用用户提供的请求处理程序之前将它们放入map中。这一切都需要不必要的内存分配,而fasthttp则可以避免。
net/http客户端API需要为每个请求创建一个新的响应对象。
为什么fasthttp API与net/http不兼容?
因为net/http API限制了许多优化机会。更多细节见上面的答案。同时,某些net/http API的部分也是次优的使用方式。
比较net/http的连接劫持和fasthttp的连接劫持。
比较net/http的Request.Body读取和fasthttp的请求体读取。
为什么fasthttp不支持HTTP/2.0和WebSockets?
HTTP/2.0的支持正在进行中。WebSockets已经完成了。第三方也可以使用RequestCtx.Hijack来实现这些好东西。
与fasthttp相比,net/http是否有已知的优势?
是的。
net/http 从 go1.6 开始支持 HTTP/2.0。
net/http的API是稳定的,而fasthttp的API是不断发展的。
net/http 可以处理更多的 HTTP 角落情况。
net/http 应该包含更少的 bug,因为它被更多的人使用和测试。
net/http可以在1.5以上的Go上工作。
为什么 fasthttp API 倾向于返回 []byte 而不是字符串?
因为[]字节到字符串的转换不是免费的 - 它需要内存分配和复制。如果你喜欢用字符串而不是字节片来工作,可以随意将返回的[]byte结果包装成string()。但请注意,这有非零的开销。
fasthttp支持哪些GO版本?
Go1.5以上。旧的版本将不被支持,因为它们的标准包缺少有用的功能。
注意:Go 1.9.7是最老的测试版本。我们建议你尽快更新。从1.11.3开始,我们将放弃对1.9.x的支持。
请提供真实的基准数据和服务器信息
请看这个问题。
是否有计划向fasthttp添加请求路由?
没有计划将请求路由添加到fasthttp中。使用第三方路由器和支持fasthttp的web框架。
fasthttp-routing
路由器
框架
lu
阿特雷戈
光纤
齿轮箱
更多信息请参见此问题。
我在fasthttp中检测到了数据竞赛!
酷! 归档一个错误。但是在这样做之前,请在你的代码中检查以下内容。
确保从RequestHandler返回后没有对RequestCtx或其成员的引用。
确保在从RequestHandler返回之前调用TimeoutError,如果有对RequestCtx或其成员的引用,这可能会被其他goroutine访问。
我在这里没有找到我的问题的答案
试着探索一下这些问题。
更新日志
v1.24.0
620f0c8 增加中间件设置自定义远程地址的选项(#1009)(Lauris BH)。
894272e 修复golangci-lint动作(#1010)(Lauris BH)。
下载地址
猜你喜欢
镭威视云 V3.6.9
下载中国农业银行天地融二代通用K宝驱动 V1.1.1.10
下载2345 看图王x86 x64 V11.3.0.10165
下载mhed V1.5.0
下载WPS office 2024夏季更新 V20241732
下载中考志愿模拟填报判定录取工具 V1.0
下载游戏常用运行库 合集 V2024.06.23
下载Topaz Gigapixel AI V7.2.1
下载小米坡 word文档转视频生成工具 V1.3
下载Heaventools Resource Tuner V2.24
下载UC Browser V13.6.0.1315
下载无限滑板 V2.0.5
下载WPS Office v11.1.0.12313官方免费版
下载梦幻西游 v1.383.0
下载Revit 2023 64位
下载Revit2022 64位
下载热门关键词
网友评论
广告更精彩
分类列表
类型列表
精品软件推荐
0条评论