评估 Go 项目的大小
测量 Go 项目的大小有助于优化性能或监控资源利用率。
检查二进制文件大小
要确定项目二进制文件的大小,请导航到 $GOPATH/pkg 目录,其中 $GOPATH 表示已安装的 Go 包路径。例如:
$ cd $GOPATH/pkg/darwin_amd64/github.com/gorilla/
在此目录中,执行以下命令以千字节 (KB) 为单位显示二进制大小:
$ du -k *
包大小的注意事项
虽然上述方法提供了有关库二进制大小的信息,但重要的是要注意链接后可执行文件中占用的实际空间可能会有所不同。这是由于包依赖关系以及导入的包之间可能存在共享依赖关系。
为了说明这一点,请考虑以下示例:
package main import "net/http" var _ = http.Serve func main() {}
相比:
package main import "github.com/gorilla/mux" var _ = mux.NewRouter func main() {}
两个程序都执行零用户代码,但它们的依赖关系不同。生成的二进制大小显示了由于依赖项继承而需要的额外空间:
$ du -k * 1028 empty (no dependencies) 5812 http (depends on net/http) 5832 mux (depends on net/http, inherits extra baggage)
结论
Go 链接器在构建过程中有效地去除了不必要的包袱。但是,要充分了解导入的包对可执行文件大小的影响,还必须考虑它们的子依赖性。通过检查包大小和依赖关系,开发人员可以优化其 Go 项目的性能和资源效率。
以上是如何确定导入的包对 Go 可执行文件的真实大小影响?的详细内容。更多信息请关注PHP中文网其他相关文章!