找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

在M1 Mac上编译使用arm64原生go

M1 Mac上编译使用arm64原生go
回复

使用道具 举报

大神点评(1)

admin 2024-9-16 13:24:54 显示全部楼层
2020年12月19日更新:go官方已发布1.16 beta版,无需自行编译即可下载安装。

预计2021年2月,go 1.16版将正式支持Apple Silicon(使用arm64架构的M1新芯片的Mac操作系统),但目前可通过下载最新源码并编译,获取原生arm64版的go。

操作在m1 mac mini上完成,go工具链安装在$HOME/goroots路径下。mac上需确保已安装rosetta 2。

首先,下载并安装amd64的go 1.15版本。通常仅需下载即可。

通过clone方式获得go源码。从github.com/golang/go仓库克隆,master分支即为1.16预发布版本。

预编译darwin/arm64工具链。此工具链本身应为arm64版,否则最终编译结果可能为x86。编译过程中需要关闭GODEBUG设置中的asyncpreemptoff参数,以避免因依赖rosetta 2而出现的协程异步抢占bug。

完成编译后,在$HOME/goroots/go-darwin-arm64-bootstrap路径下获取到完整的go arm64工具链。

编译后可使用$HOME/goroots/gosource/bin/go获得arm64版的go。将该路径添加到PATH环境变量中,即可在系统中使用原生go。

性能参考:测试项目gorazor(sipin/gorazor)在windows i7700k CPU下的go test需2.52秒;使用编译出的原生go版本所需时间为0.57秒;使用rosetta 2运行amd64的go 1.15则需0.82秒。
回复 支持 反对

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐