真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【深入淺出-JVM】(7):棧上分配

概念

對(duì)那些作用于不會(huì)逃逸出方法的對(duì)象,在分配內(nèi)存時(shí),不在將對(duì)象分配在堆內(nèi)存中,而是將對(duì)象屬性打散后分配在線程私有棧內(nèi)存上,這樣隨著方法調(diào)用結(jié)束,棧上分配打散的對(duì)象也被回收掉,不在增加 GC 額外壓力。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、四子王ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的四子王網(wǎng)站制作公司

Java 對(duì)象分配流程

【深入淺出-JVM】(7):棧上分配

示例

循環(huán)創(chuàng)建1000000000一個(gè)對(duì)象,阻止棧上分配

棧上分配條件:開(kāi)啟逃逸分析 & 開(kāi)啟標(biāo)量替換

JVM 參數(shù):

  • 棄用逃逸分析(不允許判斷對(duì)象是否可以逃逸出函數(shù)體)

-server -Xmx10m -Xms10m -XX:-DoEscapeAnalysis -XX:+PrintGC

使用 server 模式棄用逃逸分析(-server -XX:-DoEscapeAnalysis),設(shè)置堆空間大小10m,初始空間10m,打印 GC 日志

  • 棄用標(biāo)量替換(不允許對(duì)象打散分配到棧上)

-server -Xmx10m -Xms10m -XX:+PrintGC -XX:-EliminateAllocations

以上二選一

代碼:


package com.mousycoder.mycode.happy_jvm;

/**

 * @version 1.0

 * @author: mousycoder

 * @date: 2019-06-11 16:55

 */

public class OnStackTest {

    public static class User{

        public int id = 0;

        public String name = "";

    }

    public static void alloc(){

        User u = new User();

        u.id = 5;

        u.name = "mousycoder";

    }

    public static void main(String[] args) {

        long b = System.currentTimeMillis();

        for (int i = 0; i < 1000000000; i++) {

            alloc();

        }

        long e = System.currentTimeMillis();

        System.out.println(e-b);

    }

}

輸出:


[GC (Allocation Failure) 7651K->5603K(9728K), 0.0003680 secs]

[GC (Allocation Failure) 7651K->5603K(9728K), 0.0003829 secs]

[GC (Allocation Failure) 7651K->5603K(9728K), 0.0003809 secs]

[GC (Allocation Failure) 7651K->5603K(9728K), 0.0003731 secs]

[GC (Allocation Failure) 7651K->5603K(9728K), 0.0003286 secs]

VisualGC:

【深入淺出-JVM】(7):棧上分配

分析:

本次發(fā)生的是 Minor GC,發(fā)生 GC 的原因是堆空間沒(méi)有合適的區(qū)域能夠存放數(shù)據(jù)結(jié)構(gòu)導(dǎo)致的,堆從7651K 回收到 5603K,


感謝您的耐心閱讀,如果您發(fā)現(xiàn)文章中有一些沒(méi)表述清楚的,或者是不對(duì)的地方,請(qǐng)給我留言,您的鼓勵(lì)是作者寫(xiě)作最大的動(dòng)力。

作 者 : @mousycoder

原文出處 : http://mousycoder.com/thinking-in-jvm/7/


新聞名稱:【深入淺出-JVM】(7):棧上分配
網(wǎng)頁(yè)URL:http://weahome.cn/article/jejsgp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部