• 逃逸分析(Escape Analysis)


    什么是逃逸?

       逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸。

        /**
         * 无逃逸
         */
        void test01() {
            String test1 = "test1";
        }
        String test2;
    
        /**
         * 逃逸
         */
        void test02() {
            test2 = "test2";
        }

    在方法内的变量不会逃逸,在方法外声明的对象会发生逃逸,脱离了方法的控制,方法结束时变量没有结束;

    逃逸分析参数设置:

    -XX:+DoEscapeAnalysis//使用
    -XX:-DoEscapeAnalysis//不用
  • 相关阅读:
    systemtap没找到函数变量
    systemtap get var of the tracepoing
    如何在tracepoint上注册函数
    stap中的entry函数
    stap用法
    在submit_bio处使用stapn
    巴达努斯
    perf事件的切换
    perf原理再看
    内存回收的阈值
  • 原文地址:https://www.cnblogs.com/chenglc/p/9327700.html
Copyright © 2020-2023  润新知