0
点赞
收藏
分享

微信扫一扫

逃逸分析和栈上分配

  • 逃逸分析

逃逸分析的基本⾏为就是分析对象动态作⽤域:当⼀个对象在⽅法中被定义后,它可能被外部⽅法所引⽤,称为⽅法逃逸。
甚⾄还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸

  • 栈上分配

栈上分配就是把⽅法中的变量和对象分配到栈上,⽅法执⾏完后⾃动销毁,⽽不需要垃圾回收的介⼊,从⽽提⾼系统性能

-XX:+DoEscapeAnalysis开启逃逸分析(jdk1.8默认开启,其它版本未测试)
-XX:-DoEscapeAnalysis 关闭逃逸分析

  • 测试代码
  • 逃逸分析和栈上分配_JVM

  • 关闭逃逸分析
  • 逃逸分析和栈上分配_JVM_02

  • 控制台打印
  • 逃逸分析和栈上分配_JVM_03

  • 开启逃逸分析
  • 逃逸分析和栈上分配_赋值_04

  • 控制台打印
  • 逃逸分析和栈上分配_JVM_05



举报

相关推荐

0 条评论