美文网首页
一个例子理解逃逸分析。

一个例子理解逃逸分析。

作者: 铁拳阿牛 | 来源:发表于2018-09-22 09:10 被阅读47次

文前你需要准备的功底技术功底。
jstat 输出信息的解读
逃逸分析 的基本概念。
new 的时候确实有做逃逸分析,而不是书上的概念。

/**
 *
 * 运行代码输入下面的命令观察jvm 信息
 * jstat -gcnew `jps -l | grep "TestAnalysis" | awk  -F ' '  '{print $1}'` 1000
 * jstat -gcutil `jps -l | grep "TestAnalysis" | awk  -F ' '  '{print $1}'` 1000
 * @Author: 铁拳阿牛
 * @Date: 2018/9/22 上午8:48
 * @Version 1.0
 */
public class TestAnalysis {
    private static int LENGTH = 100000000;
    public static void main(String[] args) throws Exception {
        for(int i = 0  ; i < 100 ; i++){
            newObject();
            System.out.println("次数" + i);
            Thread.sleep(1000);
        }
    }

    public static void newObject(){
        for(int i = 0 ; i < LENGTH ;i++){
            //new 了是在堆里还是在栈上?执行上👆面命令查看
            Node node = new Node(i);
        }

    }


    //POJO 不用看这里
    static class Node {

        private int valuel;

        private TestGC.Node node;

        public Node(int valuel) {
            this.valuel = valuel;
        }

        public Node(int valuel, TestGC.Node node) {
            this.valuel = valuel;
            this.node = node;
        }

        public int getValuel() {
            return valuel;
        }

        public void setValuel(int valuel) {
            this.valuel = valuel;
        }

        public TestGC.Node getNode() {
            return node;
        }

        public void setNode(TestGC.Node node) {
            this.node = node;
        }
    }

}


相关文章

  • 一个例子理解逃逸分析。

    文前你需要准备的功底技术功底。jstat 输出信息的解读逃逸分析 的基本概念。new 的时候确实有做逃逸分析,而不...

  • go-内存机制(2)

    逃逸对性能的影响 在(1)中,通过一个共享在 goroutine 的栈上的值的例子讲解了逃逸分析的基础。还有其他没...

  • go 逃逸分析

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

  • Java 逃逸分析

    > 什么是逃逸分析? - 关于 Java 逃逸分析的定义: - 逃逸分析(Escape Analysis)简单...

  • 逃逸分析和栈上分配

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

  • 深入分析JVM逃逸分析对性能的影响

    逃逸分析(Escape Analysis) 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,...

  • jvm 优化篇-(4)-栈上分配与逃逸分析 -XX:+DoEsc

    逃逸分析(Escape Analysis) 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,...

  • 栈上分配(逃逸分析)

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

  • Swift-进阶 :闭包(二)逃逸闭包 & 非逃逸闭包

    本文主要分析逃逸闭包 、非逃逸闭包、自动闭包 逃逸闭包 & 非逃逸闭包 逃逸闭包定义 当闭包作为一个实际参数传递给...

  • golang的变量内存分配

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

网友评论

      本文标题:一个例子理解逃逸分析。

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