虚拟化监测系统:Java 虚拟机逃逸分析—明辰智航

首先先说下为什么需要了解要逃逸分析,在哪里用到。Java堆区是一块用于存储对象实例的内存区,同时也是gc执行垃圾回收的重点区域。所以这也造成gc可能会在大内存的使用和频繁进行垃圾回收过程上成为系统性能瓶颈。为了解决这个问题,jvn设计者开始考虑把对象实例存储到Java堆区外。使用GCIH技术,即将生命周期长的Java对象从heap中移动到heap外,并且gc不能管理GCIH内部的对象。因此达到降低GC的回收频率和提升GC的回收效率的目的。 而另一种方法,就是逃逸分析了。它也是降低GC的回收频率和提升GC的回收效率的有效方式。 逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸。
例如:
Java 虚拟机逃逸分析
StringBuffer sb是一个方法内部变量,上述代码中直接将sb返回,这样这个StringBuffer有可能被其他方法所改变,这样它的作用域就不只是在方法内部,虽然它是一个局部变量,称其逃逸到了方法外部。甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸。上述代码如果想要StringBuffer sb不逃出方法,可以这样写
Java 虚拟机逃逸分析
不直接返回 StringBuffer,那么StringBuffer将不会逃逸出方法。本文转至——明辰智航

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值