GCC是一个功能强大的编译器,不仅可以编译我们很熟悉的C/C++,也可以做为Fortran、Pascal、Objective-C等语言的编译器。而GCCGO则是GCC专门用来编译Golang语言的。
GC,全称Golang Compiler,是Go语言官方编译器,也是自带的,通常我们使用的go build等,就是GC。
大部分人认同的比较结果:
- GC是Go语言原生的编译器,不需要安装,使用方使;而GCCGO需要自已安装。
- GC编译速度比GCCGO快。
- GC只支持一些主流的处理器,如x86、amd、ARM等。而GCCGO支持基本上所有的处理器。
- GCCGO编译出的程序运行效率更高,因为GCCGO比GC代码优化能力更强大。
- GCCGO编译的代码可以更好的用于GDB。
- GCCGO并不能支持编译所有的Golang版本,这个在使用时要注意。
一些人的总结:
- GCCGO能生成很好的执行代码,但缺少逃逸检测,会在很多小内存的分配和回收上损失一些性能。GC实现的不严谨,对32位系统支持很差。
- 在ARM芯片架构上不使用GCCGO编译的代码是靠不住的。