-Xms(初始堆大小)和 -Xmx(最大堆大小)指定堆内存,建议设置为相同值避免动态调整开销,如 -Xms2g -Xmx2g。-XX:NewRatio 设置新生代与老年代比例(如 -XX:NewRatio=2 表示新生代占堆的1/3),或通过 -XX:NewSize/-XX:MaxNewSize 直接指定新生代大小。-XX:+UseG1GC,并设置最大停顿时间 -XX:MaxGCPauseMillis。-XX:+UseParallelGC,配合 -XX:ParallelGCThreads 指定线程数。-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 控制类元数据内存。StringBuilder代替字符串拼接)。ArrayList 替代 LinkedList,HashMap 替代 Hashtable,减少内存占用。sudo sysctl vm.swappiness=10(数值越低越少使用Swap)。/etc/security/limits.conf 提升应用并发能力。sudo sysctl vm.nr_hugepages=1024 配置(需内核支持),减少内存碎片。sudo fallocate -l 1G /swapfile,格式化并启用。jstat:监控GC情况,如 jstat -gcutil <pid> 1000(每秒输出一次)。VisualVM:分析堆内存、线程状态及GC日志,定位性能瓶颈。-XX:+PrintGCDetails 和 -XX:+PrintGCDateStamps 记录GC日志,分析Full GC频率和耗时。StringBuilder 拼接字符串,避免循环内频繁创建String对象。ExecutorService)管理线程,避免过多线程导致上下文切换开销。参考来源: