How does golang's garbage collector work when compiled?

懵懂的女人 提交于 2020-12-25 02:06:51

问题


I'm trying to understand how does golang's garbage collector work when the golang code is compiled and I guess when using go run as well. I figure go run is a little more straight forward and just runs the garbage collector along with the .go files you are running. But is the garbage collector compiled into the binaries as well when compiling to an executable?


回答1:


The compiled object files do not contain any garbage collector "code".

When a program is run with go run, the go command will compile your sources, create and start an executable binary in a temp folder. See below.

When an application is compiled and linked into an executable binary, a go runtime is also included in the executable which is loaded when the binary is started. This runtime provides the garbage collector amongst other services such as runtime reflection and stacktrace information. This is the main reason why a simple Hello World application results in like a 2 MB executable binary.



来源:https://stackoverflow.com/questions/32186342/how-does-golangs-garbage-collector-work-when-compiled

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!