前言:
Go goroutines
Go
golang Google
我对标准库的替代品进行了一些研究和基准测试,以了解它们的表现。我将它们分为我认为是关键的微服务组件。
所有基准测试都在下面列出的配置上运行。虽然正常的基准测试时间只有 1 秒,但我将所有测试运行了 10 秒,以确保每个测试周期都是一致的。
2.7 GHz Intel Core i7RAM — 16GB — 16 GB 2133 MHz LPDDR3Bench Time 10s 1sgo test -bench=. -benchtime=10s
1、路由
http Go
REST GinEchoBeegoGorilla Mux Goji Github
其中一些是具有路由功能的成熟中间件框架,而另一些则仅仅只是路由库。
这些库针对单个命名参数进行了测试,结果如下所示,Gin 拥有最快的路由器,Echo 排在第二位。
2、JSON 序列化和反序列化
API JSON Encode
encodingjsonXMLcsvencoding/jsonJsoniterEasyJson
下面是编码的结果,结果表明性能差异并不显着
JSONjsoniter
现在,如果您的请求已被解码,下一步可能是应用您的业务逻辑,并可能执行一些数据库操作。
3、是否使用ORM框架
Java HibernateActive Record for Rails Django ORMORMSQL
Go databasestructsqlx
CRUD ORM
database, database + sqlx, gorm , go-pg go-pgORM
API
4、总结
echo + jsoniter + go-pgGo
GolangGolang