【问题标题】:Golang - Difference between "go run main.go" and compilationGolang - “go run main.go”和编译之间的区别
【发布时间】:2015-05-07 01:11:48
【问题描述】:

在用 Go 写了一些脚本后,我问自己编译 .go-file 和后面的执行和 go run FILE.go 命令在性能等方面是否有区别。

如果我使用其中一种方法启动 Web 服务有什么好处吗?

【问题讨论】:

标签: performance command-line go compilation


【解决方案1】:

go run 只是一步编译然后运行的快捷方式。虽然它对开发很有用,但您通常应该在生产环境中使用它时直接构建并运行二进制文件。

【讨论】:

  • 肯定不止这些——如果我在 helloworld 中对 println 计时,go run 比编译时运行得更快。我在一个更重要的程序上注意到了这一点,并且一直到 helloworld 都是如此。我很想知道结果反转的原因和时间点。
  • @10cls 我没有注意到我的系统上有这种行为。 go run 将可执行文件写入临时目录,而go build 将其写入当前目录。也许你的临时目录是一个 ramdisk?
【解决方案2】:

'go install' 命令会在 pkg 文件夹下创建共享库编译文件 package.a 和 bin 目录下的 exec 文件。

go run 命令在进行开发时很有用,因为它只是为您编译和运行它,但不会在 pkg 文件夹和 src 文件夹中生成二进制文件

【讨论】:

    【解决方案3】:

    对于 DEV(本地)环境 - 使用 go run
    对于 PROD 环境 - 使用 go install 这个比 go build 更好,因为它安装包和依赖项,你将拥有 Go 工具链。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 2016-02-06
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多