温馨提示×

centos怎么优化java编译

小樊
34
2026-09-09 08:31:46
栏目: 编程语言

在 CentOS 上“优化 Java 编译”可以从编译速度、编译参数、系统环境、构建工具几个层面来做。下面按实用程度给你一套方案。


一、选择合适的 JDK(非常重要)

不同 JDK 对编译性能影响很大:

  • OpenJDK 11 / 17 / 21(推荐)
  • 避免使用过老的 JDK(如 8 对大型项目较慢)
  • 可使用 GraalVM / Temurin / Corretto

查看当前 JDK:

java -version

切换 JDK(alternatives):

sudo alternatives --config java

二、开启并行编译(最直接)

1️⃣ javac 并行

javac -d out $(find src -name "*.java") &

但更推荐用构建工具。

2️⃣ Maven 并行编译(强烈推荐)

mvn compile -T 4
# 或按 CPU 核数
mvn compile -T $(nproc)

安装 Maven(如未安装):

sudo yum install maven -y

三、JVM 编译参数优化

MAVEN_OPTSJAVA_OPTS 中设置:

export MAVEN_OPTS="-Xms1g -Xmx4g -XX:+UseG1GC -XX:ParallelGCThreads=$(nproc)"

说明:

  • -Xmx:根据内存调整
  • G1GC:适合编译型任务
  • 避免 SerialGC

四、减少不必要的编译工作

1️⃣ 跳过测试(仅编译)

mvn compile -DskipTests

2️⃣ 增量编译

Maven / Gradle 默认支持,不要每次 clean

mvn compile
# 不要总用
mvn clean compile

3️⃣ 关闭 annotation processing(如不需要)

mvn compile -Dmaven.compiler.proc=none

五、使用 Gradle(比 Maven 更快)

sudo yum install gradle -y

并行 + 构建缓存:

gradle build --parallel --build-cache

六、CentOS 系统级优化

1️⃣ 增加文件描述符

ulimit -n 65535

永久生效:

/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2️⃣ 使用 tmpfs(加速编译)

mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build

Maven 使用:

mvn -Dmaven.repo.local=/tmp/build/repo compile

七、使用 ccache / javac 缓存(进阶)

  • gradle build-cache
  • Maven 可用 maven-javac-cache-plugin

八、示例:推荐组合(生产环境)

export MAVEN_OPTS="-Xmx4g -XX:+UseG1GC"
mvn compile -T $(nproc) -DskipTests

如果你愿意,可以告诉我:

  • 用的是 Maven 还是 Gradle
  • 项目规模(文件数 / 模块数)
  • CentOS 版本 & CPU 内存

我可以给你精确到参数的优化配置

0