为了账号安全,请及时绑定邮箱和手机立即绑定

golang 的垃圾收集器在编译时是如何工作的?

golang 的垃圾收集器在编译时是如何工作的?

Go
慕姐8265434 2021-11-01 16:36:48
我试图了解在编译 golang 代码时 golang 的垃圾收集器是如何工作的,我猜在使用 go run 时也是如此。我认为 go run 更直接一点,它只运行垃圾收集器以及您正在运行的 .go 文件。但是在编译为可执行文件时,垃圾收集器是否也编译到二进制文件中?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

编译后的目标文件不包含任何垃圾收集器“代码”。

当使用 运行程序时go run,该go命令将编译您的源代码,在临时文件夹中创建并启动可执行二进制文件。见下文。

当应用程序被编译并链接到可执行二进制文件时,go运行时也包含在可执行文件中,该可执行文件在二进制文件启动时加载。此运行时提供垃圾收集器以及其他服务,例如运行时反射和堆栈跟踪信息。这就是为什么一个简单的 Hello World 应用程序会产生一个 2 MB 的可执行二进制文件的主要原因。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信