net/http与fasthttp区别

fasthttp 是 Go 的一款不同于标准库net/http的 HTTP 实现。fasthttp 的性能可以达到标准库的 10 倍,说明他魔性的实现方式。主要的点在于四个方面:

net/http的实现是一个连接新建一个 goroutine;fasthttp是利用一个 worker 复用 goroutine,减轻 runtime 调度 goroutine 的压力

net/http解析的请求数据很多放在map[string]string(http.Header) 或map[string][]string(http.Request.Form),有不必要的 []byte 到 string 的转换,是可以规避的

net/http解析 HTTP 请求每次生成新的*http.Request和http.ResponseWriter;fasthttp解析 HTTP 数据到*fasthttp.RequestCtx,然后使用sync.Pool复用结构实例,减少对象的数量

fasthttp会延迟解析 HTTP 请求中的数据,尤其是 Body 部分。这样节省了很多不直接操作 Body 的情况的消耗

参考:http://www.qingpingshan.com/jb/go/148471.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 2,429评论 0 14
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • SpringBoot-表单验证 需求:添加一个女生,在提交表单时,年龄必须大于18 例: GirlControll...
    我可能是个假开发阅读 1,119评论 0 7