堆空间参数设置

参数配置
参数配置2

注意:
伊甸园和S0/S1区默认大小比例为8:1
新生代最大年龄默认为15

查询特定参数
在这里插入图片描述

C:\Users\lianlei>jps
18900 Solution3
9604
10968 Launcher
20760 Jps

C:\Users\lianlei>jinfo -flag suvivorRatio 18900
no such flag 'suvivorRatio'

C:\Users\lianlei>jinfo -flag SurvivorRatio 18900
-XX:SurvivorRatio=8

C:\Users\lianlei>

关于设置分配空间担保
在这里插入图片描述

堆是分配对象的唯一选择吗?

当然是,不一定,因为随着逃逸分析技术成熟,栈上分配以及标量替换优化技术会将一部分对象放在堆内存之外。
在这里插入图片描述

什么是逃逸分析?

逃逸分析
逃逸分析参数设置
逃逸分析参数设置
逃逸分析以后,可以对堆内存进行优化

  • 栈上分配 如果不是发生逃逸,会在栈内存中分配空间。
  • 同步省略 如果发现一个对象只能一个线程访问,对于这个对象就不考虑线程同步操作。
  • 分离对象与标量替换 如果一个对象不需要作为一个连续的内存结构存在也可以被访问到,那么也可以全部或者部分放在cpu寄存器上。

同步省略
同步省略
标量替换
啥子是个标量?

标量是无法在分解成更小的数据的数据,java当中的原始类型就是标量。相应的,可以在进行分解的是数据称为聚合量,java对象就是聚合量。
就是为了减少堆内存的使用,尽量使用标量替代Java对象,如下:

class A{
    int num ;
    int size ;
}

public static void main(String[] args) {
        A a  = new A();
        a.num = 1;
        a.size = 3;
    }
替换为
 public static void main(String[] args) {
        int num =1 ;
        int size  =12;
    }

标量替换参数设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值