大佬们好,用 Gin 以来一直有个问题,每次等到项目启动之后,每一条路由后面都有一个 (数量 Handlers )的显示,并且数量是 4, 如下图:
问题发生于昨天,没想到这个项目越来越大,导致路由太多,就参照网上一个人的文章,把路由拆分了。 没想到,拆分后,所有的 Handlers 都变成了 1,如下图:
想问一下各位大佬,这样的话,会不会对我的项目性能产生影响~~~
顺便奉劝大家,不要随便相信网上的文章 T_T
拆分路由器的方式,如下图:
1
labulaka521 2020-09-23 10:04:22 +08:00
应该是你的中间件数量+你的业务处理函数(1)
也就是 RouterGroup 这个结构体的 Handlers 参数 可以看看 gin 所使用的 httprouter |
2
richzhu OP @labulaka521 中间件一直都只有 1 个呢,拆分之前是 4,拆分后就变成 1 了,请问这个从 4 变成了 1,对性能有影响嘛?
|
3
Abirdcfly 2020-09-24 09:35:04 +08:00 1
显示这个部分在 debugPrintRoute 函数
```` func debugPrintRoute( httpMethod, absolutePath string, handlers HandlersChain) { if IsDebugging() { nuHandlers := len(handlers) for _, h := range handlers{ // debugPrint(" %s", nameOfFunction(h)) //这两行是我加的。看一下是啥就知道这 4 个是什么 handler 了。 } handlerName := nameOfFunction(handlers.Last()) if DebugPrintRouteFunc == nil { debugPrint("%-6s %-25s --> %s (%d handlers)\n", httpMethod, absolutePath, handlerName, nuHandlers) } else { DebugPrintRouteFunc( httpMethod, absolutePath, handlerName, nuHandlers) } } } ```` 我这里除去那个业务逻辑函数外,剩下的 3 个 handler 是 github.com/gin-gonic/gin.LoggerWithConfig.func1 github.com/gin-gonic/gin.RecoveryWithWriter.func1 github.com/gin-contrib/cors.New.func1 |