Java逃逸分析
2017-11-23 12:48
85 查看
Java逃逸分析
记录下看到的别人的博客内容,以后深入了解再详细写篇,加深下基础概念和印象!
一般来说,Java对象的创建,通常是在堆空间中分配内存,但是如果大量的临时对象也在堆空间创建的话,会导致性能的下降,引起频繁的GC的话,性能更低
JVM的逃逸分析,具体来说就是对于一个方法内或者说代码块中创建的对象,通过逃逸分析,来确定是将此对象空间分配在堆中还是栈中,这个对象的引用,必须没有逃逸出去, 例如 public void escape(){ Foo foo = new Foo( ); } 这个对象没有被外部所引用,只有这个方法栈中用到,将此对象创建在栈上,可以随着方法栈的返回而销毁,回收栈空间。这种事未发生逃逸的对象。 反之就是发生了逃逸的情况,只能在堆空间中创建对象了。
这个功能可以通过配置JVM,打开或者关闭。
开启:-XX:+DoEscapeAnalysis
相关文章推荐
- 深入理解Java中的逃逸分析
- java逃逸分析
- Java中的逃逸分析和TLAB以及Java对象分配
- 深入理解Java中的逃逸分析
- Java逃逸分析详解及代码示例
- Java内存对象的逃逸分析
- Java内存对象的逃逸分析
- Java_JVM_逃逸分析技术_栈上分配_标量替换
- Java内存对象的逃逸分析
- java中的逃逸分析
- Java即时编译和逃逸分析
- 关于Java 逃逸分析
- 面试中遇到的java逃逸分析问题
- Java中的逃逸分析和TLAB以及Java对象分配
- Java之JVM逃逸分析
- JAVA逃逸分析的原理
- Java_逃逸分析技术
- java中jvm逃逸问题分析
- Java 逃逸分析
- 深入理解Java中的逃逸分析