MethodArea (永久代): 存储class信息、方法信息、代码编译完的信息、字节码.
1.7 之前叫 perm Generation , 必须设置大小,并且JVM启动之后没办法更改。存放字符串常量。
1.8叫 meta space,默认大小为物理内存。 字符串常量存放在堆中。
GC调优:尽量减少FGC(full GC)
JVM 参数:
-XX:+UseSerialGC = Serial New (DefNew) + Serial Old 可以一起指定,也可以单独指定
-XX:+UseConc(urrent)MarkSweepGC = ParNew + CMS + Serial Old 1.7需要加上括号中的urrent,1.8不用
-XX:+UseParallelGC = Parallel Scavenge + Parallel Old (1.8默认) 【PS + PO】
-XX:+UseParallelOldGC = ParNew + Parallel Old
-XX:+UseG1GC = G1
HotSpot参数分类
标准:- 开头,所有的hotspot 支持
非标准:-X 开头,特定hotspot支持
不稳定:-XX开头,下个版本可能取消
参数查询
1. 区分概念:内存泄漏memory leak,内存溢出out of memory
2. java -XX:+PrintCommandLineFlags HelloGC
3. java -Xmn10M -Xms40M -Xmx60M -XX:+PrintCommandLineFlags -XX:+PrintGC HelloGC
PrintGCDetails PrintGCTimeStamps PrintGCCauses
4. java -XX:+UseConcMarkSweepGC -XX:+PrintCommandLineFlags HelloGC
5. java -XX:+PrintFl