逃逸分析
2017-03-02 09:56
113 查看
逃逸分析优化
栈上分配
优化原理:分析找到未逃逸的变量,将变量类的实例化内存直接在栈里分配(无需进入堆),分配完成后,继续在调用栈内执行,最后线程结束,栈空间被回收,局部变量也被回收。
这是优化后的处理方式,对比可以看出,主要区别在栈空间直接作为临时对象的存储介质。从而减少了临时对象在堆内的分配数量。
锁省略
如果通过逃逸分析能够判断出指向某个局部变量的多个引用被限制在同一方法体内,并且所有这些引用都不能“逃逸”到这个方法体以外的地方,那么HotSpot会要求JIT执行一项优化动作 – 将局部变量上拥有的锁省略掉。
栈上分配
优化原理:分析找到未逃逸的变量,将变量类的实例化内存直接在栈里分配(无需进入堆),分配完成后,继续在调用栈内执行,最后线程结束,栈空间被回收,局部变量也被回收。
这是优化后的处理方式,对比可以看出,主要区别在栈空间直接作为临时对象的存储介质。从而减少了临时对象在堆内的分配数量。
锁省略
如果通过逃逸分析能够判断出指向某个局部变量的多个引用被限制在同一方法体内,并且所有这些引用都不能“逃逸”到这个方法体以外的地方,那么HotSpot会要求JIT执行一项优化动作 – 将局部变量上拥有的锁省略掉。
相关文章推荐
- JVM优化手段 - 逃逸分析
- JVM调优:并发GC和逃逸分析
- JVM中启用逃逸分析
- [转]分层编译对逃逸分析的影响
- Golang逃逸分析
- 脏牛漏洞-Docker逃逸POC(dirtycow-vdso)代码分析
- Java_JVM_逃逸分析技术_栈上分配_标量替换
- java虚拟机的逃逸分析
- JVM笔记-逃逸分析
- Java内存对象的逃逸分析
- Java即时编译和逃逸分析
- Java_逃逸分析技术
- Java中的逃逸分析和TLAB以及Java对象分配
- 逃逸分析(escape Analysis)
- Java内存对象的逃逸分析
- JVM优化之逃逸分析(Escape Analysis)
- 什么是逃逸分析(Escape Analysis)?
- Docker 容器逃逸案例分析
- JVM中的逃逸分析
- 深入分析JVM逃逸分析对性能的影响