zoukankan      html  css  js  c++  java
  • Java逃逸分析

    Java逃逸分析

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

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

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

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

    开启:-XX:+DoEscapeAnalysis

  • 相关阅读:
    Django
    Django
    Django
    6.1
    Django
    Django
    Django
    Django
    Django简介
    web应用/http协议/web框架
  • 原文地址:https://www.cnblogs.com/heartlake/p/7884320.html
Copyright © 2011-2022 走看看