Java逃逸分析

Java逃逸分析

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

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

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

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

开启:-XX:+DoEscapeAnalysis

转载于:https://www.cnblogs.com/heartlake/p/7884320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值