前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swag parseDependecy太慢的问题

swag parseDependecy太慢的问题

作者头像
runzhliu
发布2022-04-13 13:53:55
7070
发布2022-04-13 13:53:55
举报
文章被收录于专栏:容器计算

下面是使用 swag v1.7.9 构建接口文件的耗时,可以看到因为添加了一些额外的类型,比如 datatypes.JSON,所以需要用到 parseDependencyparseInternal,构建时间一共花了四五分钟,在项目开始,频繁修改接口格式的时候,这是很难接受的。

代码语言:javascript
复制
# swag init --parseDependency --parseInternal
2022/02/23 10:26:44 Generate swagger docs....
2022/02/23 10:26:44 Generate general API Info, search dir:./
2022/02/23 10:30:43 Generating app.Response
2022/02/23 10:30:43 Generating entity.Cluster
2022/02/23 10:30:43 Generating entity.Model
2022/02/23 10:30:43 Generating entity.Clusters
2022/02/23 10:30:43 Generating app.Pagination
2022/02/23 10:30:43 Generating entity.User
2022/02/23 10:30:43 Generating entity.Namespace
2022/02/23 10:30:43 Generating entity.Notification
2022/02/23 10:30:43 Generating datatypes.JSON
2022/02/23 10:30:43 Generating json.RawMessage
2022/02/23 10:30:43 Generating entity.Notifications
2022/02/23 10:30:43 Generating entity.PrometheusRule
2022/02/23 10:30:43 Generating entity.Alert
2022/02/23 10:30:43 Generating entity.PrometheusRules
2022/02/23 10:30:43 Generating entity.Users
2022/02/23 10:30:43 create docs.go at  docs/docs.go
2022/02/23 10:30:43 create swagger.json at  docs/swagger.json
2022/02/23 10:30:43 create swagger.yaml at  docs/swagger.yaml

查看 swag 社区是否有关注到这个问题,发现已经有一个大神提过,并且提出了解决方案,但是目前还没有被社区接纳。

https://github.com/swaggo/swag/pull/1108

具体问题就不深入了,大概就是寻找依赖的时候遍历了太多次,为了尽快提升 swag 的速度,clone 了大神的仓库,直接编译了一个新的 swag 二进制,重新运行,速度瞬间提升。

代码语言:javascript
复制
# 为了区分原来的swag,新编译出来的swag重命名为swag_clone
# swag_clone init --parseDependency --parseInternal --parseGoList
2022/02/23 10:34:30 Generate swagger docs....
2022/02/23 10:34:30 Generate general API Info, search dir:./
2022/02/23 10:34:33 Generating app.Response
2022/02/23 10:34:33 Generating entity.Cluster
2022/02/23 10:34:33 Generating entity.Model
2022/02/23 10:34:33 Generating entity.Clusters
2022/02/23 10:34:33 Generating app.Pagination
2022/02/23 10:34:33 Generating entity.User
2022/02/23 10:34:33 Generating entity.Namespace
2022/02/23 10:34:33 Generating entity.Notification
2022/02/23 10:34:33 Generating datatypes.JSON
2022/02/23 10:34:33 Generating json.RawMessage
2022/02/23 10:34:33 Generating entity.Notifications
2022/02/23 10:34:33 Generating entity.PrometheusRule
2022/02/23 10:34:33 Generating entity.Alert
2022/02/23 10:34:33 Generating entity.PrometheusRules
2022/02/23 10:34:33 Generating entity.Users
2022/02/23 10:34:33 create docs.go at  docs/docs.go
2022/02/23 10:34:33 create swagger.json at  docs/swagger.json
2022/02/23 10:34:34 create swagger.yaml at  docs/swagger.yaml
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档