美文网首页
jvm(3)-虚拟机参数

jvm(3)-虚拟机参数

作者: StayHungriest | 来源:发表于2020-03-12 16:10 被阅读0次

    一、作用

    jvm运行中,可以跟踪系统的运行状态。jvm提供一些跟踪系统状态的参数,可以在运行时打印相关日志。主要围绕着堆参、栈、方法区参数。

    二、堆分配参数

    1. -XX jvm系统级别配置,配置日志信息,或者说jvm配置什么样的垃圾回收器。
    2. 非-XX 对应应用层面上的配置。运行在jvm上应用的内存大小等。
    3. +号:启用,-号:禁用
    4. 常用参数

    -XX:+PrintGC 只要遇到GC就会打印日志
    -XX:+UseSerialGC 配置串行回收器
    -XX:+PrintGCDetails 可以查看详细信息,包括各个区的情况
    -Xms: 设置java程序启动时初始堆大小
    -Xmx: 设置java程序能获得的最大堆大小
    -Xmx20m:堆最大
    -Xms5m :堆最小
    XX:+PrintConmmandLineFlags:可以将隐式或者显式传给虚拟机的参数输出
    -Xmn:设置新生代堆内存大小
    -XX:SurvivorRate:设置新生代中eden空间和from/to空间的比例。
    -XX:NewRatio:老年代比新生代的比例

    三、堆溢出处理(OOM)

    OutOfMemory
    -XX:+HeapDumpOnOutOfMemoryError:可以导出堆信息
    -XX:HeapDumpPath=路径:导出堆信息时指定路径

    四、栈参数

    栈空间直接决定了函数可调用的最大深度。
    -Xss?m:?设置栈空间大小,可用递归测试。

    五、方法区参数

    默认下,方法区大小为64M,如产生大量类,可以对永久区调整,避免溢出。
    -XX:PermSize=64M:设置永久区大小

    六、直接内存配置

    广泛用于NIO中。如果达到上限,会触发GC,如果不能有效释放空间,也会引起系统OOM。
    -XX:MaxDirectMemorySize:如果不设置,默认为最大堆空间。

    相关文章

      网友评论

          本文标题:jvm(3)-虚拟机参数

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