zoukankan      html  css  js  c++  java
  • 常用jvm参数

    如果你是Eclipse ,可以通过

    run -> Run Configurations->Arguments 添加-XX:+PrintGCDetails 

    打开gc日志

    -Xmx

    设置java heap的最大值,默认是机器物理内存的1/4。这个值决定了最多可用的Java堆内存:分配过少就会在应用中需要大量内存作缓存或者临时对象时出现OOMOut Of Memory)的问题;如果分配过大,那么就会因PermSize过小而引起的另外一种Out Of Memory。所以如何配置还是根据运行过程中的分析和计算来确定,如果不能确定还是采用默认的配置。

    -Xms

    设置Java堆初始化时的大小,默认情况是机器物理内存的1/64。这个主要是根据应用启动时消耗的资源决定,分配少了申请起来会降低运行速度,分配多了也浪费。一般设置成跟-Xmx相同。

    -XX:PermSize  -XX:MaxPermSize

    初始化永久内存区域(方法区)大小。,程序运行期PermGen space进行清理,所以如果你的APPLOAD很多CLASS的话,就很可能出现PermGen space错误。

      -XX:MaxPermSize  设置永久内存区域最大大小。 通常设置为相同的值。
    -Xmn

    直接设置青年代大小。整个JVM可用内存大小=青年代大小 + 老年代大小 + 持久代大小 。持久代一般固定大小为64m,所以增大年轻代后,将会减小老年代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

    -XX:NewRatio

    控制默认的Young代的大小,例如,设置-XX:NewRatio=3意味着Young代和老年代的比率是1:3。换句话说,Eden和Survivor空间总和是整个堆大小的1/4。

    新生代大小一般可以设置为整个堆的1/4 - 1/3左右。

    -XX:SurvivorRatio

    设置年轻代中Eden区与Survivor区的大小比值。设置为4即Eden/from =Eden/to=4 ,一个Survivor区占整个年轻代的1/6。越大的survivor空间可以允许短期对象尽量在年青代消亡;如果Survivor空间太小,Copying收集将直接将其转移到老年代中,这将加快老年代的空间使用速度,引发频繁的完全垃圾回收。

    XX:NewSize  -XX:MaxNewSize

    就像可以通过参数(-Xms and -Xmx) 指定堆大小一样,可以通过参数指定新生代大小。-XX:MaxNewSize 最大可以设置为-Xmx/2 .

    注意:针对新生代,同时定义绝对值和相对值,绝对值将起作用

    -XX:MaxTenuringThreshold

    设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入老年代。对于老年代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象年轻代的存活时间,增加在年轻代即被回收的概率

    -XX:TargetsurvivorRatio

    该值是一个百分比,控制允许使用的幸存区的比例,默认值是50。该参数设置较大的话可提高对survivor空间的使用率。当较大的堆栈使用较低的SurvivorRatio时,应增加该值到8090,以更好利用救助空间。

    -XX:+PrintTenuringDistribution

    这个参数用于显示每次Minor GC时Survivor区中各个年龄段的对象的大小。

    ps:不同的堆分布情况 对系统执行会产生不同的影响,在实际工作中,应该根据系统的特点作出合理的配置
    基本策略:尽可能的吧对象预留在新生代,减少老年代的GC次数

  • 相关阅读:
    3.3测试复盘
    计算机网络-运输层面试题整理
    3.2专项测试复盘
    2.27专项测试复盘
    2.26排序专项测试复盘
    2.25专项测试复盘
    前端基础笔记1
    2.24专项测试复盘
    2.23专项测试复盘
    更新pip报错AttributeError: 'NoneType' object has no attribute 'bytes'
  • 原文地址:https://www.cnblogs.com/javabigdata/p/7383155.html
Copyright © 2011-2022 走看看