展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

逃逸分析和栈上分配

  • 逃逸分析
逃逸分析的基本⾏为就是分析对象动态作⽤域:当⼀个对象在⽅法中被定义后,它可能被外部⽅法所引⽤,称为⽅法逃逸。
甚⾄还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸
  • 栈上分配
栈上分配就是把⽅法中的变量和对象分配到栈上,⽅法执⾏完后⾃动销毁,⽽不需要垃圾回收的介⼊,从⽽提⾼系统性能

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

  • 关闭逃逸分析

  • 控制台打印

  • 开启逃逸分析

  • 控制台打印

posted @ 2022-09-15 17:15  DogLeftover  阅读(29)  评论(0编辑  收藏  举报