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

我试图了解在编译 golang 代码时 golang 的垃圾收集器是如何工作的,我猜在使用 go run 时也是如此。我认为 go run 更直接一点,它只运行垃圾收集器以及您正在运行的 .go 文件。但是在编译为可执行文件时,垃圾收集器是否也编译到二进制文件中?


慕姐8265434
浏览 143回答 1
1回答

慕村225694

编译后的目标文件不包含任何垃圾收集器“代码”。当使用 运行程序时go run,该go命令将编译您的源代码,在临时文件夹中创建并启动可执行二进制文件。见下文。当应用程序被编译并链接到可执行二进制文件时,go运行时也包含在可执行文件中,该可执行文件在二进制文件启动时加载。此运行时提供垃圾收集器以及其他服务,例如运行时反射和堆栈跟踪信息。这就是为什么一个简单的 Hello World 应用程序会产生一个 2 MB 的可执行二进制文件的主要原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go