在 CentOS 上编译和优化 Java(JDK / OpenJDK) 或 Java 项目,可以从 JDK 编译优化 和 Java 应用编译优化 两个层面来看。下面按常见场景系统说明。
OpenJDK 对 GCC 版本敏感,推荐使用 GCC 7–11。
yum install -y gcc gcc-c++ make
或安装 devtoolset:
yum install -y centos-release-scl
yum install -y devtoolset-11
scl enable devtoolset-11 bash
在 configure 阶段指定优化级别:
./configure \
--with-debug-level=release \
--with-native-debug-symbols=none \
--with-jvm-variants=server \
--with-extra-cflags="-O3 -march=native" \
--with-extra-cxxflags="-O3 -march=native" \
--with-extra-ldflags="-Wl,--strip-all"
说明:
-O3:最高优化级别-march=native:针对当前 CPU 指令集优化release:去掉调试信息,提升性能⚠️ 不建议调试环境使用 -O3
减少编译时间和体积:
./configure \
--disable-warnings-as-errors \
--with-jvm-variants=server
make JOBS=$(nproc)
yum install -y binutils
推荐:
java -version
mvn -T 4 clean package
或:
mvn -T 1C clean package
mvn package -DskipTests -Dmaven.javadoc.skip=true
export MAVEN_OPTS="-Xms512m -Xmx2048m -XX:+TieredCompilation -XX:+UseStringDeduplication"
gradle build --parallel --daemon
默认已启用(64 位):
java -server
-XX:+TieredCompilation
-XX:CompileThreshold=1000
-XX:+UseG1GC
或(JDK 17+):
-XX:+UseZGC
swapoff -a
ulimit -n 65535
yum install -y tuned
tuned-adm profile throughput-performance
❌ -O3 一定更快(可能导致 JDK 不稳定)
❌ Debug JDK 用于生产
❌ 无限增大 JVM 内存
✅ CentOS 7/8
✅ OpenJDK 17 / 21
✅ GCC 10+
✅ G1GC
✅ release 模式 JDK
如果你能说明:
我可以给你 更精确的优化方案或参数模板。