运行
Home
- Go语言的编译器虽然把Go编译成本地可执行文件,这些代码仍然运行在Go的runtime中,这个有点类似java的虚拟机,它负责管理内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。
- 其中,runtime主要由C语言和编写,并且是每个包的最顶级包,查看相关内容可以到$GOROOT/src/runtime。
- Go拥有简单缺高效的垃圾回收器,该回收器采用标记清除法。
- 经过多次编译比较可执行文件与源代码文件,Go 的可执行文件都比相对应的源代码文件要大很多,这恰恰说明了 Go 的 runtime 嵌入到了每一个可执行文件当中。