• 常用Java虚拟机参数


    常用Java虚拟机参数

    • java虚拟机参数如何输入

      右键---->Run As---->Run Configurations---->选择Arguments---->在VM arguments中输入

    常用跟踪调试参数

    • -XX:PrintGC 只要遇到GC就会打印日志

      • 上图中每个[GC ~~~~] 表示一次GC结果
      • Allocation Failure 表示此次GC是由于新生代空间不足引起的
      • 65423k -> 696k(251392k) 表示此次GC将对空间由65423k清除垃圾后变成696k,总的堆空间为251392k
      • 0.0011844 secs 表示此次GC耗时0.0011844秒
    • -XX:+PrintGCDetails 遇到GC打印更加详细的信息

    • 上图第一个红框PSYoungGen表示这是一次新生代GC,[PSYoungGen: 65423K->10680K(76288K)] 表示新生代GC情况,65423K->63890K(251392K), 0.0299408 secs 表示堆的总体空间情况和耗时,[Times: user=0.09 sys=0.03, real=0.03 secs] user表示用户态CPU耗时,sys表示系统CPU耗时,real表示GC实际经历的时间。

    • 上图第二个框FULL GC (Ergonomics) 表示这次是FULL GC,会同时回收新生代,老年代和永久区。Ergonomics表示引起这次GC的原因(Ergonomics具体代表什么原因可以查阅其他资料)。后面PSYoungGen代表新生代回收情况,ParOldGen表示老年代的回收情况,Metaspace表示永久区的回收情况。

    • 要注意的是:PSYoungGen表示的是用 Paralle Scavenge 回收器进行回收的,ParOldGen表示用 Parallel Old 回收器进行回收的。如果使用的是其他回收器的话,关键字是不一样的。

    • -XX:PrintGCTimesStamps 该参数会在GC是输出虚拟机启动后的偏移时间。

    • -XX:PrintGCApplicationConcurrenTime 可以打印应用程序的执行时间

    • -XX:printGCApplicationStoppedTime 可以打印应用程序由于GC而停顿的时间。

    • -XX:PrintReferenceGC 可以跟踪系统的软引用,弱引用,虚引用和Finallize队列

    • -Xloggc:log/gc.log 指定GC日志输出到文件中

    • -verbose:class 跟踪类的加载和卸载

    • -XX:+TraceClassLoading 跟踪类的加载

    • -XX:+TraceClassUnloading 跟踪类的卸载

    • -XX:+PrintClassHistogram 加入该参数后,在java控制台中按下Ctrl+Break键,控制台会显示当前的类信息柱状图

    • -XX:+PrintVMOptions 可以在程序运行时打印虚拟机接收到的显式参数(即程序员通过命令给出的参数)

    • -XX:+PrintCommandLineFlags 可以打印虚拟机接收到的显示参数和隐式参数(即虚拟机启动时自行设置的参数)

    • -XX:+PrintFlagsFinal 会打印所有的系统参数,多达500多行

    堆的配置参数

    • -Xms 配置初始堆大小,java程序启动时,虚拟机就会分配一块初始堆大小的空间 例-Xms20m 就是分配初始堆大小为20M
    • -Xmx 配置最大堆,当初始堆大小空间耗尽后,虚拟机会对堆空间进行扩展,扩展上限为最大堆空间
    • -Xmn 配置新生代大小,新生代大小一般为整个堆空间的1/3到1/4左右
    • -XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例关系,即--XX:SurvivorRatio = eden/from = eden/to
    • -XX:NewRatio 设置新生代和老年代的比例
    • -XX:+HeapDumpOnOfMemoryError 当内存溢出时导出整个堆的信息
    • -XX:+HeapDumpPath 可以指定导出堆的存放路径

    非堆内存的参数配置

    • -XX:PermSize 初始的永久区大小
    • -XX:MaxPermSize 最大永久区
    • -Xss 指定线程的栈大小
    • -XX:MaxDirectMemorySize 指定最大可用直接内存 默认值为最大堆空间即-Xmx
    • -server 指定虚拟机的工作模式为Server
    • -client 指定虚拟机的工作模式为client 默认为client
  • 相关阅读:
    埃尔多安回击“穆斯林都是恐怖分子”:坏人也可能是基督徒或犹太人
    通信行业并非那么”腹黑“
    苹果无人驾驶技术专家遭大众挖角
    数据结构之数组定义及基本操作(转)
    LCD浮点数显示函数的探讨
    C 数据类型
    C 基本语法
    C 标准库
    C 语言实例
    C 语言实例
  • 原文地址:https://www.cnblogs.com/zdl2234/p/12767948.html
Copyright © 2020-2023  润新知