前言:

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