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

你可能感兴趣的:(net/http与fasthttp区别)