⼤对象的分配
- 简介
所谓的⼤对象是指,需要⼤量连续内存空间的 Java 对象,最典型的⼤对象就是那种很⻓的字符串以及数组
虚拟机提供了⼀个-XX: PretenureSizeThreshold 参数,令⼤于这个设置值的对象直接在⽼年代分配。即操作指定内存时,直接分配到老年代
这样做的⽬的是避免在 Eden 区及两个 Survivor 区之间发⽣⼤量的内存复制
- 演练⼤对象配置
-verbose:gc -XX:+PrintGCDetails -XX:+UseSerialGC -Xms20M -Xmx20M -Xmn10M -XX:PretenureSizeThreshold=3145728
-verbose:gc -XX:+PrintGCDetails 开启GC⽇志打印
-Xms20 M 设置JVM初始内存为20M
-Xmx20 M 设置JVM最⼤内存为20M
-Xmn10 M 设置年轻代内存⼤⼩为10M
-
测试代码
-
配置
-
控制台打印