Golang二进制文件依赖分析工具 - Go-size-analyzer使用指南
Golang二进制文件依赖分析工具 - Go-size-analyzer使用指南
对于旨在理解和优化其编译后二进制文件大小的Go开发者来说,go-size-analyzer 提供了一个直接的解决方案。该工具既提供了用于交互式分析的Web界面,也提供了用于快速洞察的文本模式。

更多关于Golang二进制文件依赖分析工具 - Go-size-analyzer使用指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang二进制文件依赖分析工具 - Go-size-analyzer使用指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
go-size-analyzer 是一个用于分析Go二进制文件依赖关系的工具,它能够帮助开发者识别二进制文件中各个包和符号所占用的空间,从而进行针对性的优化。该工具支持Web界面和文本模式两种输出方式,便于交互式分析和快速查看。
安装方法
使用以下命令安装 go-size-analyzer:
go install github.com/Zxilly/go-size-analyzer@latest
基本使用
-
生成分析报告:首先,编译你的Go项目,然后使用
go-size-analyzer分析生成的二进制文件。go build -o myapp main.go go-size-analyzer myapp默认情况下,工具会启动一个本地Web服务器,并在浏览器中打开交互式界面。
-
文本模式输出:如果只需要快速查看摘要信息,可以使用文本模式。
go-size-analyzer --text myapp这将输出各包和符号的大小统计,便于在终端中直接查看。
示例分析
假设有一个简单的Go项目,编译后二进制文件大小为10MB。使用 go-size-analyzer 分析:
go-size-analyzer --text myapp
输出可能如下:
Package Size %
github.com/myapp/pkg1 2.5MB 25%
github.com/myapp/pkg2 1.8MB 18%
runtime 1.2MB 12%
...
从结果中可以看到 pkg1 和 pkg2 占用了较大空间,可能需要检查这些包中是否引入了不必要的依赖或大型文件。
Web界面功能
通过Web界面,可以更详细地探索二进制文件的构成:
- 树状视图:以层级结构展示包和符号的大小。
- 依赖图:可视化包之间的依赖关系,帮助识别冗余引入。
- 过滤和搜索:支持按名称过滤符号或包,快速定位特定内容。
集成到构建流程
可以将 go-size-analyzer 集成到CI/CD流程中,监控二进制文件大小的变化。例如,在GitHub Actions中添加步骤:
- name: Analyze binary size
run: |
go build -o myapp .
go-size-analyzer --text myapp > size-report.txt
这样每次构建都会生成大小报告,便于追踪优化效果。
注意事项
- 该工具需要调试信息支持,确保编译时未使用
-ldflags="-s -w"等剥离调试信息的标志。 - 分析结果包括运行时和标准库部分,这些通常无法优化,应重点关注自定义包。
通过 go-size-analyzer,开发者可以直观地了解二进制文件的组成,从而有效地减少体积,提升分发和部署效率。

