Gin 使用了自定义版本的 [HttpRouter](https://github.com/julienschmidt/httprouter)
[查看所有基准测试](https://github.com/gin-gonic/gin/blob/master/BENCHMARKS.md)
Benchmark name | (1) | (2) | (3) | (4)
------------------------------|-----------:|------------:|-----------:|---------:
**BenchmarkGin_GithubAll** | **30000** | **48375** | **0** | **0**
BenchmarkAce_GithubAll | 10000 | 134059 | 13792 | 167
BenchmarkBear_GithubAll | 5000 | 534445 | 86448 | 943
BenchmarkBeego_GithubAll | 3000 | 592444 | 74705 | 812
BenchmarkBone_GithubAll | 200 | 6957308 | 698784 | 8453
BenchmarkDenco_GithubAll | 10000 | 158819 | 20224 | 167
BenchmarkEcho_GithubAll | 10000 | 154700 | 6496 | 203
BenchmarkGocraftWeb_GithubAll | 3000 | 570806 | 131656 | 1686
BenchmarkGoji_GithubAll | 2000 | 818034 | 56112 | 334
BenchmarkGojiv2_GithubAll | 2000 | 1213973 | 274768 | 3712
BenchmarkGoJsonRest_GithubAll | 2000 | 785796 | 134371 | 2737
BenchmarkGoRestful_GithubAll | 300 | 5238188 | 689672 | 4519
BenchmarkGorillaMux_GithubAll | 100 | 10257726 | 211840 | 2272
BenchmarkHttpRouter_GithubAll | 20000 | 105414 | 13792 | 167
BenchmarkHttpTreeMux_GithubAll| 10000 | 319934 | 65856 | 671
BenchmarkKocha_GithubAll | 10000 | 209442 | 23304 | 843
BenchmarkLARS_GithubAll | 20000 | 62565 | 0 | 0
BenchmarkMacaron_GithubAll | 2000 | 1161270 | 204194 | 2000
BenchmarkMartini_GithubAll | 200 | 9991713 | 226549 | 2325
BenchmarkPat_GithubAll | 200 | 5590793 | 1499568 | 27435
BenchmarkPossum_GithubAll | 10000 | 319768 | 84448 | 609
BenchmarkR2router_GithubAll | 10000 | 305134 | 77328 | 979
BenchmarkRivet_GithubAll | 10000 | 132134 | 16272 | 167
BenchmarkTango_GithubAll | 3000 | 552754 | 63826 | 1618
BenchmarkTigerTonic_GithubAll | 1000 | 1439483 | 239104 | 5374
BenchmarkTraffic_GithubAll | 100 | 11383067 | 2659329 | 21848
BenchmarkVulcan_GithubAll | 5000 | 394253 | 19894 | 609
- (1):在一定的时间内实现的总调用数,越高越好
- (2):单次操作耗时(ns/op),越低越好
- (3):堆内存分配 (B/op), 越低越好
- (4):每次操作的平均内存分配次数(allocs/op),越低越好
- 介绍
- 快速入门
- 基准测试
- 特性
- Jsoniter
- 示例
- AsciiJSON
- HTML 渲染
- HTTP2 server 推送
- JSONP
- Multipart/Urlencoded 绑定
- Multipart/Urlencoded 表单
- PureJSON
- Query 和 post form
- SecureJSON
- XML/JSON/YAML/ProtoBuf 渲染
- 上传文件
- 单文件
- 多文件
- 不使用默认的中间件
- 从 reader 读取数据
- 优雅地重启或停止
- 使用 BasicAuth 中间件
- 使用 HTTP 方法
- 使用中间件
- 只绑定 url 查询字符串
- 在中间件中使用 Goroutine
- 多模板
- 如何记录日志
- 定义路由日志的格式
- 将 request body 绑定到不同的结构体中
- 支持 Let's Encrypt
- 映射查询字符串或表单参数
- 查询字符串参数
- 模型绑定和验证
- 绑定 HTML 复选框
- 绑定 Uri
- 绑定查询字符串或表单数据
- 绑定表单数据至自定义结构体
- 自定义 HTTP 配置
- 自定义中间件
- 自定义验证器
- 设置和获取 Cookie
- 路由参数
- 路由组
- 运行多个服务
- 重定向
- 静态文件服务
- 静态资源嵌入
- 测试
- 用户
- FAQ