您现在的位置是:首页 >其他 >Go 的第三方开源库的学习网站首页其他
Go 的第三方开源库的学习
简介Go 的第三方开源库的学习
fasthttp库:
1.比官方的net/http 库快十倍
2.fasthttp库的核心思路:资源复用
. 复用 goroutine,减轻 runtime 调度压力
. 对象复用,大量使用 sync.Pool 减轻 GC 压力
3.使用 fasthttp 的知名项目:Fiber、Gearbox、atreugo 等
jsoniter库
1.jsoniter(json-iterator)(JSON 解析器),比标准库(encoding/json)快了6倍多
2.与标准库 encoding/json 完全兼容
Marshal()
# encoding/json
import "encoding/json"json.Marshal(&data)
# jsoniter
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Marshal(&data)
Unmarshal()
# encoding/json
import "encoding/json"
json.Unmarshal(input, &data)
# jsoniter
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Unmarshal(input, &data)
gogo/protobuf
1.Protocol Buffers 是一种协议格式
2.功能:用于高效存储与读取结构化数据;可以将数据压缩更小(原因:基于二进制)
3.是基于官方库 golang/protobuf 的增强
. 比 golang/protobuf 更快地序列化与反序列化
. 更规范的 Go 结构
. 兼容 官方库 golang/protobuf
. 可选地生成额外的帮助代码,减少代码输入
. 可以生成测试代码和 benchmark 代码
. 其他序列化格式
valyala/quicktemplate 库
1.Go 模板渲染引擎
2.比标准库 html/template 快20倍以上。原因:quicktemplate 会先将编写的模板代码转换为 Go 语言代码,再进行渲染
3.quicktemplate 与 Go 的语法非常类似
4.几乎所有的 bug 都能再模板编译时被捕获
5.模板中可以嵌入任意 Go 代码
6.quicktemplate 的主要目的是生成 HTML,但也可从实现 JSON 和 XML 序列化(序列化通常会比通过标准库 encoding/json 与 encoding/xml 更快)
注意:第三方库是在官方库解决不了的时候再尝试使用
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。