• JVM的监控工具之jinfo


    参考博客:https://www.jianshu.com/p/8d8aef212b25

    jinfo(ConfigurationInfoforJava)的作用是实时地查看和调整虚拟机各项参数,使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表。
    但如果想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询。

    • no option 输出全部的参数和系统属性
    • -flag name 输出对应名称的参数
    • -flag [+|-]name 开启或者关闭对应名称的参数

    我们可以通过jinfo实时的修改虚拟机的参数,但是不是任何命令都可以修改,可以修改的参数我们先来执行这个命令:java -XX:+PrintFlagsFinal -version,会列出当前机器支持的所有参数,那么用jinfo可以修改的参数是什么呢?

    只有最后一列显示manageable的这一列才能进行修改。

    仔细查看发现可修改的参数其实并不多,jvm的运行内存一旦在运行时确定下来,那么就无法修改。但是无法一些错误信息没有记录,或者是处于关闭状态,还是可以修改的

    例如我们来查询idea的进程是否开启了GC日志信息的详细打印,我们可以执行这样的命令:jinfo -flag PrintGCDetails 17312,从结果中我们可以看出是没有开启打印GC详细信息的。

    jinfo还可以使用-sysprops选项把虚拟机进程的System.getProperties()的内容打印出来,可以执行命令:jinfo -sysprops 17312。

    jinfo -flags:会打印当前该线程所有相关的参数,例如我们要来打印idea这个进程的所有相关参数,我们来执行命令:jinfo -flags 40416会列出JVM的版本,显示当前idea他的非缺省值的东西(也就是你修改过的),还有Command Line 代表的是命令行形式传递给idea这个进程的一些参数

     查看最大堆内存 jinfo -flag MaxHeapSize 17312 

    查看所使用的垃圾收集器
    jinfo -flag UseConcMarkSweepGC 17312

    jinfo -flag UseG1GC 17312
    jinfo -flag UseParallelGC 17312

    可以看出所使用的垃圾回收器是 ParallelGC

  • 相关阅读:
    紫书 例题8-18 UVa 1442 (扫描法)
    紫书 例题8-17 UVa 1609 (构造法)(详细注释)
    紫书 例题8-16 UVa 1608 (递归)
    紫书 例题8-15 UVa 12174 (滑动窗口)
    紫书 例题8-14 UVa 1607 (二分)
    紫书 例题8-13 UVa 11093 (反证法)
    紫书 例题8-12 UVa 12627 (找规律 + 递归)
    Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
    CodeForces
    CodeForces 444C 线段树
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11223601.html
Copyright © 2020-2023  润新知