Skip to content

Commit 6ebf011

Browse files
committed
feat: 低cpu build
1 parent 265e721 commit 6ebf011

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

Makefile

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ OUTPUT_DIR:= $(ROOT_DIR)/_output
99
# 版本信息
1010
VERSION := $(shell git describe --tags --always --dirty)
1111
VERSION_PACKAGE := gotribe-admin/internal/pkg/common
12+
# Go 编译并发数限制(默认使用 CPU 核心数的一半,可通过环境变量覆盖)
13+
# 如果 nproc 不可用,默认使用 2
14+
GO_BUILD_PARALLEL ?= $(shell nproc 2>/dev/null | awk '{print int($$1/2+1)}' || echo 2)
1215

1316
# ==============================================================================
1417
## 检查代码仓库是否是 dirty(默认dirty)
@@ -41,7 +44,13 @@ build: tidy # 编译源码,依赖 tidy 目标自动添加/移除依赖包.
4144

4245
.PHONY: build-linux
4346
build-linux: tidy # 编译 Linux/Debian 版本(静态链接,无 CGO 依赖).
44-
@CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -a -installsuffix cgo -ldflags "$(GO_LDFLAGS)" -o $(OUTPUT_DIR)/$(PROJECT_NAME)-linux-amd64 $(ROOT_DIR)/$(PROJECT_NAME).go
47+
@echo "构建 Linux 版本(并发数: $(GO_BUILD_PARALLEL))..."
48+
@CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOMAXPROCS=$(GO_BUILD_PARALLEL) go build -p $(GO_BUILD_PARALLEL) -installsuffix cgo -ldflags "$(GO_LDFLAGS)" -o $(OUTPUT_DIR)/$(PROJECT_NAME)-linux-amd64 $(ROOT_DIR)/$(PROJECT_NAME).go
49+
50+
.PHONY: build-linux-low-cpu
51+
build-linux-low-cpu: tidy # 编译 Linux/Debian 版本(低 CPU 使用,适合服务器环境).
52+
@echo "构建 Linux 版本(低 CPU 模式,并发数: 1)..."
53+
@nice -n 19 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOMAXPROCS=1 go build -p 1 -installsuffix cgo -ldflags "$(GO_LDFLAGS)" -o $(OUTPUT_DIR)/$(PROJECT_NAME)-linux-amd64 $(ROOT_DIR)/$(PROJECT_NAME).go
4554

4655
.PHONY: format
4756
format: # 格式化 Go 源码.
@@ -142,10 +151,11 @@ swagger-clean: # 清理 Swagger 文档
142151
.PHONY: help
143152
help: # 显示帮助信息
144153
@echo "Available targets:"
145-
@echo " all - 构建项目 (默认)"
146-
@echo " build - 编译源码(当前平台)"
147-
@echo " build-linux - 编译 Linux/Debian 版本(静态链接)"
148-
@echo " run - 开发运行"
154+
@echo " all - 构建项目 (默认)"
155+
@echo " build - 编译源码(当前平台)"
156+
@echo " build-linux - 编译 Linux/Debian 版本(静态链接,并发数: $(GO_BUILD_PARALLEL)"
157+
@echo " build-linux-low-cpu - 编译 Linux/Debian 版本(低 CPU 使用,适合服务器)"
158+
@echo " run - 开发运行"
149159
@echo " dev - 开发运行"
150160
@echo " test - 运行测试"
151161
@echo " test-all - 运行所有测试用例(包括单元测试和基准测试)"

0 commit comments

Comments
 (0)