JVM笔记-16运行时数据区-堆(逃逸分析:代码优化、总结)

学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。

尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)


逃逸分析:代码优化

避免垃圾回收,提高程序性能。
避免![在这里插入图片描述](https://img-blog.csdnimg.cn/20210224204634324.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTkxMDc3OQ==,size_16,color_FFFFFF,t_70)

栈上分配

在这里插入图片描述
在这里插入图片描述

-/+DoEscapeAnalysis 默认开启

关闭逃逸分析
在这里插入图片描述
开启逃逸分析
在这里插入图片描述
运行时间减少,根本不会维护那么多对象。
在这里插入图片描述
在这里插入图片描述
甚至没有发生gc。


同步省略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
字节码中还是有,运行时才考虑省略。

分离对象/标量替换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逃逸分析是在server端开启的
主要还是标量替换,作为优化的手段,逃逸分析完,直接进行栈上分配并没有被采用。逃逸分析,分析后主要还是依赖标量替换。

对象标量替换后,已经不被成为对象,所以才说所有对象实例,在堆上。


在这里插入图片描述

扫描二维码关注公众号,回复: 12499855 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_45910779/article/details/114040562