Java堆内存调优

通过对Java虚拟机堆内存分析可以发现,实际上每一块堆得子内存区中都会存在有一部分的可变伸缩区,其基本流程:如果空间不足了,则在可变的范围之内扩大内存空间,当一段时间之后发现内存空间没有这么紧张的时候,再将可变空间进行释放。

堆内存参数调整

在整个堆内存的调整策略之中,基本上都会优先调整两个参数:“-Xmx”(最大内存)、“-Xms”(初始化内存)。、 如果要想取得这些内存的整体信息直接利用Runtime类即可;(默认最大内存为物理内存的1/4,初始化内存为物理内存的1/64)


在运行的时候输入如下参数(最大可用内存5G,初始化内存5G,同时输出GC回收详情)
java -Xmx5G -Xms5G -XX:+PrintGCDetails TestDemo


相应的数据可以下面代码进行查询验证:

public class TestDemo { 
    public static void main(String args[]) { 
        Runtime run = Runtime.getRuntime() ; 
        long maxMemory = run.maxMemory() ; //获取最大内存大小
        long totalMemory = run.totalMemory() ;//获取初始化内存大小
        System.out.println("MAX_MEMORY = " + maxMemory + "(字节)、" + (maxMemory / (double)1024 / 1024) + "(兆)");
        System.out.println("TOTAL_MEMORY = " + totalMemory + "(字节)、" + (totalMemory / (double)1024 / 1024) + "(兆)") ; 
    } 
}

年轻代调整参数
老年代调整参数
永久代调整参数
元空间调整参数
一般的java虚拟机内存调整通过调整初始化内存和最大内存来进行调优。如果项目有特殊要求,也可以根据具体需求对年轻代和老年代的内存划分进行细微调整,但是一般不建议直接调整年轻代和老年代的默认比例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值