美文网首页
逃逸分析-锁消除-栈上分配例子

逃逸分析-锁消除-栈上分配例子

作者: wuli白 | 来源:发表于2020-04-09 16:10 被阅读0次
/**
 * 开启逃逸分析:-XX:+DoEscapeAnalysis
 * 关闭逃逸分析:-XX:-DoEscapeAnalysis
 * -XX:+EliminateLocks开启锁消除(jdk1.8默认开启,其它版本未测试)
 * -XX:-EliminateLocks 关闭锁消除
 **/
public class Main {

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 5000000; i++) {
            alloc();
            lock("TestLockEliminate ", "Suffix");
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);



    }

    public static String lock(String s1, String s2) {
        StringBuffer sb = new StringBuffer();
        sb.append(s1);
        sb.append(s2);
        return sb.toString();
    }

    /**
     * 栈上分配
     */
    private static void alloc() {
        User user = new User();
        user.setName("a");
    }


    @Data
    static class User {
        private String name;
        private String age;
    }
}

相关文章

  • 逃逸分析-锁消除-栈上分配例子

  • go 逃逸分析

    go 逃逸分析 什么是逃逸分析 逃逸分析决定一个变量是分配在堆上还是分配在栈上 原理 逃逸分析这种“骚操作”把变量...

  • JIT 编译器(Just In Time Compiler) 如

    1.方法内联 2.逃逸分析 栈上分配标量替换(并不是所有的对象或者数组,都会在堆上分配)同步消除

  • 栈上分配(逃逸分析)

    栈上分配(逃逸分析) 分析 ​ 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可以能...

  • JVM的逃逸分析

    对象一定分配在堆中吗? JVM通过逃逸分析,那些逃不出方法的对象会在栈上分配。 什么是逃逸分析? EscapeAn...

  • 栈上分配和方法逃逸

    栈上分配和逃逸分析 栈上分配指的是根据方法的运行过程,建立java的虚拟机栈,这个方法栈帧根据方法的运行顺序入栈和...

  • 逃逸分析&栈上分配&标量替换&同步消除

    逃逸分析 逃逸分析分基本行为就是分析对象动态作用域:当一个对象被定义后,它可能被外部方法引用,例如作为调用参数被传...

  • java对象分配过程

    1.编译器通过逃逸分析判断对象是在栈上分配还是堆上分配,如果是堆上分配则进入下一步。(开启逃逸分析需要设置jvm参...

  • golang的变量内存分配

    逃逸分析 逃逸分析不是直接的优化手段,而是一个代码分析,通过动态分析对象的作用域,为其它优化手段如栈上分配、标量替...

  • 逃逸分析和栈上分配

    了解逃逸分析和栈上分配之前,我们可以先简单了解一下它们的基本定义。 逃逸分析(个人理解):就是方法内的对象,可以被...

网友评论

      本文标题:逃逸分析-锁消除-栈上分配例子

      本文链接:https://www.haomeiwen.com/subject/iabcmhtx.html