0
点赞
收藏
分享

微信扫一扫

⼤对象的分配

  • 简介

所谓的⼤对象是指,需要⼤量连续内存空间的 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

  • 测试代码
  • ⼤对象的分配_数组

  • 配置
  • ⼤对象的分配_数组_02

  • 控制台打印
  • ⼤对象的分配_java_03



举报

相关推荐

0 条评论