CentOS 上提升 Java 编译速度的系统与实践要点
一 环境准备与基础配置
sudo yum groupinstall "Development Tools"sudo yum install java-1.8.0-openjdk-devel.x86_64 -y(按需选择版本)noatime 挂载选项以减少元数据写入;确保充足的空闲空间与合理的 I/O 调度策略。二 构建工具与并行增量策略
<parallel>true</parallel> 与合适的 <forkCount>,并开启构建缓存(如 ccache 或构建结果缓存)。--parallel、--build-cache,并在 org.gradle.parallel=true、org.gradle.caching=true 等配置项启用并行与缓存。-J-XX:+UseParallelGC 为 javac 的 JVM 启用并行 GC,减少停顿);三 JVM 与容器层调优
-Xms 与 -Xmx)以减少扩容抖动;-XX:+UseG1GC),并通过 -XX:MaxGCPauseMillis 设定目标停顿;-XX:+PrintGCDetails -Xloggc:<path>。-XX:+UseCompressedOops)以降低对象指针开销(对 64 位 JVM 且堆不大于约 32GB 的场景尤为有效)。四 系统与内核参数优化
swapon -s、free -h;/etc/fstab。noatime 降低元数据写入;确保充足的 inodes 与合适的 I/O 调度器(SSD 优先)。permissive,避免权限反复校验带来的额外开销。五 监控定位与瓶颈排查
top/htop 观察 CPU 与负载,iostat -x 1 检查磁盘 I/O 与 await,free -h 观察内存与换页。jstat -gc <pid> 观察 GC 频率与停顿;jstack <pid> 检查编译线程是否阻塞或频繁 Full GC;jmap -histo <pid> 与 jmap -dump 分析对象分配热点(配合 MAT 等工具)。noatime、合并/减少小文件写入、增大构建目录所在分区缓存。