1.java -Xms128m -Xmx2g MyApp
2.
java -XX:InitialHeapSize=128m -XX:MaxHeapSize=2g MyApp
其中1和2相同,1是2的缩写.
3.
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError =
"sh ~/cleanup.sh"
MyApp
当内存溢出时候,可以写入日志到文件中,并且可以执行shell脚本,这样就可以发送邮件,或者提醒
4.java -XX:PermSize=128m -XX:MaxPermSize=256m MyApp
-XX:InitialCodeCacheSize and -XX:ReservedCodeCacheSize
设置永久带的缓存,并不包含在-Xmx中,需要通过
-XX:InitialCodeCacheSize and -XX:ReservedCodeCacheSize设置。
5.打印虚拟机缓存.
-XX:+PrintCommandLineFlags
6.新生代参数:
-XX:NewSize and -XX:MaxNewSize
size和最大的size
-XX:NewRatio
XX:NewRatio=3 指定老年代/新生代为3/1. 老年代占堆大小的 3/4 ,新生代占 1/4 .
-XX:SurvivorRatio
XX:SurvivorRatio=10 表示伊甸园区(Eden)是 幸存区To 大小的10倍(也是幸存区From的10倍).所以,伊甸园区(Eden)占新生代大小的10/12, 幸存区From和幸存区To 每个占新生代的1/12 .注意,两个幸存区永远是一样大的..
-XX:+PrintTenuringDistribution???
7.收集器算法
-XX:+UseSerialGC单线程手机算法,一般使用只有一个cpu的情况
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:ParallelGCThreads
-XX:-UseAdaptiveSizePolicy
-XX:GCTimeRatio
-XX:MaxGCPauseMillis
通过-XX:GCTimeRatio=<value>告诉JVM最大暂停时间的目标值(以毫秒为单位)