gpt4 book ai didi

go - 为什么建议在生产环境中运行 Go 应用程序时使用 `go build` 而不是 `go run`?

转载 作者:行者123 更新时间:2023-12-01 22:42:34 38 4
gpt4 key购买 nike

我有一个 Dockerfile,用于使用 go build 编译 Go 应用程序。我进行了研究,确实建议将 go build 用于生产。

但是我找不到正确的答案来解释为什么。

我了解 go run 创建一个临时文件,该文件会在应用程序终止时进行清理。但是,如果我使用的是 Docker,为什么使用 go run 而不是 go build 不好呢?

最佳答案

几个原因:

  • Go 应用程序不需要 Go 工具链,就像 C 应用程序不需要 gcc 一样。如果你使用 go build,你可以只部署一个二进制文件;如果您使用 go run,则必须安装工具链。
  • go run 会在每次运行时不必要地编译应用程序,从而增加启动时间。
  • go run 将应用程序 fork 到一个新进程,通过隐藏 PID 和退出状态使进程管理不必要地复杂化。
  • go run 有可能在您只想运行应用程序时意外吸收代码更改。仅当您需要新的二进制文件时才使用 go build 可以让您每次都重新运行相同、一致的二进制文件,而不会发生意外更改。

关于go - 为什么建议在生产环境中运行 Go 应用程序时使用 `go build` 而不是 `go run`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61060768/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com