1.在M1 Mac上编译使用arm64原生go
在M1 Mac上编译使用arm64原生go
年月日更新:go官方已发布1. beta版,源码无需自行编译即可下载安装。源码
预计年2月,源码go 1.版将正式支持Apple Silicon(使用arm架构的源码短信认证源码M1新芯片的Mac操作系统),但目前可通过下载最新源码并编译,源码获取原生arm版的源码手机硬件源码go。
操作在m1 mac mini上完成,源码go工具链安装在$HOME/goroots路径下。源码mac上需确保已安装rosetta 2。源码
首先,源码下载并安装amd的源码go 1.版本。通常仅需下载即可。源码
通过clone方式获得go源码。源码paypal轮询源码从github.com/golang/go仓库克隆,源码master分支即为1.预发布版本。源码
预编译darwin/arm工具链。源码盗版追踪此工具链本身应为arm版,否则最终编译结果可能为x。编译过程中需要关闭GODEBUG设置中的rcu源码分析asyncpreemptoff参数,以避免因依赖rosetta 2而出现的协程异步抢占bug。
完成编译后,在$HOME/goroots/go-darwin-arm-bootstrap路径下获取到完整的go arm工具链。
编译后可使用$HOME/goroots/gosource/bin/go获得arm版的go。将该路径添加到PATH环境变量中,即可在系统中使用原生go。
性能参考:测试项目gorazor(sipin/gorazor)在windows ik CPU下的go test需2.秒;使用编译出的原生go版本所需时间为0.秒;使用rosetta 2运行amd的go 1.则需0.秒。