在 CentOS 上優化 Go 打包過程可以從以下幾個方面進行:
選擇合適的 Go 版本:
設置環境變量:
GOGC
:控制垃圾回收器的觸發頻率,默認值為 100。將其設置為較低的值(如 20 或 30)可以提高內存使用效率,從而加快編譯速度。GOMAXPROCS
:設置程序運行時使用的最大 CPU 核心數。將其設置為你的 CPU 核心數可以獲得更好的性能。GOBIN
:設置輸出二進制文件的目錄,以避免每次構建時都生成一個新的目錄。例如,可以在 ~/.bashrc
或 ~/.profile
文件中添加以下行:export GOGC=20
export GOMAXPROCS=$(nproc)
export GOBIN=$HOME/go/bin
然后運行 source ~/.bashrc
或 source ~/.profile
使更改生效。使用靜態鏈接:
CGO_ENABLED=0
和 GOOS=linux
,可以創建靜態鏈接的二進制文件。這將減少可執行文件的大小,但可能需要額外的庫文件。在構建命令中添加這些選項:go build -ldflags="-extldflags='-static'" -a -installsuffix cgo -o your_binary_name
代碼優化:
使用緩存:
sccache
或 distcc
。這些工具可以將編譯結果緩存到磁盤上,以便在下次構建時重用。使用 Go Modules 管理依賴:
go mod init
go mod tidy
優化并行編譯:
GOMAXPROCS
為你的 CPU 核心數:export GOMAXPROCS=4
go build -p 4
優化二進制文件大小:
-ldflags
參數去除調試信息和符號表,從而減小二進制文件的體積。例如:go build -ldflags="-s -w"
通過以上方法,可以在 CentOS 上優化 Go 打包過程,提升編譯速度和程序性能。