您的位置:首页 > 编程语言 > Java开发

Java逃逸分析

2017-11-23 12:48 85 查看

Java逃逸分析

记录下看到的别人的博客内容,以后深入了解再详细写篇,加深下基础概念和印象!

一般来说,Java对象的创建,通常是在堆空间中分配内存,但是如果大量的临时对象也在堆空间创建的话,会导致性能的下降,引起频繁的GC的话,性能更低

JVM的逃逸分析,具体来说就是对于一个方法内或者说代码块中创建的对象,通过逃逸分析,来确定是将此对象空间分配在堆中还是栈中,这个对象的引用,必须没有逃逸出去, 例如 public void escape(){ Foo foo = new Foo( ); } 这个对象没有被外部所引用,只有这个方法栈中用到,将此对象创建在栈上,可以随着方法栈的返回而销毁,回收栈空间。这种事未发生逃逸的对象。 反之就是发生了逃逸的情况,只能在堆空间中创建对象了。

这个功能可以通过配置JVM,打开或者关闭。

开启:-XX:+DoEscapeAnalysis

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: