-Xms
和-Xmx
指定初始和最大堆内存(如-Xms1g -Xmx1g
),避免动态调整开销。-XX:UseG1GC
),平衡吞吐量和延迟;多核场景可选Parallel GC(-XX:UseParallelGC
)。-XX:NewRatio
设置新生代与老年代比例(如-XX:NewRatio=2
表示新生代占堆的1/3)。ArrayList
代替LinkedList
,用HashMap
代替Hashtable
。WeakReference
或SoftReference
管理缓存。vm.swappiness
控制内存交换倾向(建议设为10-30),减少Swap使用。sudo fallocate -l 4G /swapfile
)并启用。ulimit -v
或cgroups限制Java进程的虚拟内存使用。jstat
、jmap
、VisualVM
等工具分析GC日志和内存占用,定位泄漏或性能瓶颈。-XX:PrintGCDetails
和-XX:PrintGCDateStamps
参数,记录GC行为,优化回收策略。