加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java 利用ManagementFactory获取jvm,os的一些信息--转

发布时间:2020-12-14 06:22:30 所属栏目:Java 来源:网络整理
导读:原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个项目的运行时jvm的情况,可以使用一些监控工具,比如jdk的bin下就提供了很多工具。 ??? 比如,本地运行一个程序,让它死循环 div class="dp-highlighter bg_java" div cl

原文地址:http://blog.csdn.net/dream_broken/article/details/49759043

想了解下某个项目的运行时jvm的情况,可以使用一些监控工具,比如jdk的bin下就提供了很多工具。

???

比如,本地运行一个程序,让它死循环

<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;view plain<span data-mod="popu_168"><span data-mod="popu_168">?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;copy

?
  1. ????????????
  2. ????????????}?
  3. ????????????}??

? ? 然后,点击启动jconsole.exe

可以发现,jconsole.exe可以连接本地,也可以连接远程,我们选择本地的中的刚刚上面执行的那个类

我们发现,居然可以监控到这么多信息,那如果我们自己写代码,能否获取到这些信息呢,点击MBean。

java.lang下,看名称就知道是什么了,再点击某一个,会看到一些类信息,也就是说,我们是有可能自己写代码也能获取到jvm信息的。

? ? 下面就记录下例子代码。

<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;view plain<span data-mod="popu_168"><span data-mod="popu_168">?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;copy

?
  1. ??
  2. ????
  3. ????
  4. ??????????????????
  5. ????????System.out.println(
  6. ????????
  7. ????????printCompilationInfo();??
  8. ????????System.out.println(
  9. ????????
  10. ????????printRuntimeInfo();??
  11. ????????System.out.println(
  12. ????????
  13. ????????printGarbageCollectorInfo();??
  14. ????????System.out.println(
  15. ????????
  16. ????????printMemoryPoolInfo();??
  17. ????????System.out.println(
  18. ??????????
  19. ??????
  20. ????
  21. ????????
  22. ????????
  23. ????????
  24. ????????
  25. ??????????
  26. ????????????
  27. ????????????
  28. ????????????System.out.println(
  29. ????????????System.out.println(
  30. ????????????
  31. ????????????
  32. ????????????System.out.println(
  33. ????????????System.out.println(
  34. ????}??
  35. ????
  36. ????????????
  37. [])?
  38. ????????????method.setAccessible(
  39. ????????}?
  40. ????????????????
  41. ????????????????
  42. ????????????
  43. ????????????
  44. ????????????
  45. ????}??
  46. ????
  47. ????????System.out.println(
  48. ????????
  49. ????????}??
  50. ??????
  51. ????????ClassLoadingMXBean?classLoad=?ManagementFactory.getClassLoadingMXBean();??
  52. ????????System.out.println(
  53. ??????????
  54. ??????
  55. ????????RuntimeMXBean?runtime?=?ManagementFactory.getRuntimeMXBean();??
  56. ????????System.out.println(
  57. ????????System.out.println(
  58. ????????System.out.println(
  59. ????????System.out.println(
  60. ????????
  61. ????????
  62. ????????
  63. ????????List?args?=?runtime.getInputArguments();??
  64. ????????????System.out.println(
  65. ????????????????System.out.println(arg);??
  66. ????????}??
  67. ????????System.out.println(
  68. ????}??
  69. ????
  70. ?managers?=?ManagementFactory.getMemoryManagerMXBeans();??
  71. ????????
  72. ????????????????System.out.println(
  73. ????}??
  74. ????
  75. ?garbages?=?ManagementFactory.getGarbageCollectorMXBeans();??
  76. ????????
  77. ????}??
  78. ????
  79. ????????MemoryUsage?headMemory?=?memory.getHeapMemoryUsage();??
  80. ????????System.out.println(
  81. ????????System.out.println(
  82. ????????System.out.println(
  83. ????????System.out.println(
  84. ????????System.out.println(
  85. ????????System.out.println(
  86. ????????System.out.println(
  87. ??????
  88. ????????List?pools?=?ManagementFactory.getMemoryPoolMXBeans();??
  89. ????????????
  90. ????????????????
  91. ????????????}??
  92. ????}??
  93. ????
  94. ????????System.out.println(
  95. ????????
  96. ?????????
  97. ????????????System.out.println(
  98. ????????????
  99. ????????????????????????+
  100. ????????????}??
  101. ????????
  102. ?
  103. ????????????ThreadInfo[]?threadInfos?=?thread.getThreadInfo(threadIds);??
  104. ????????????System.out.println(
  105. ????????????????System.out.println(
  106. ????????????}??
  107. ??????????
  108. ??????
  109. ????????
  110. ????????????????||?
  111. }??

<div class="dp-highlighter bg_plain">
<div class="bar">
<div class="tools">
[plain]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;view plain<span data-mod="popu_168"><span data-mod="popu_168">?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/dream_broken/article/details/49759043#"&gt;copy

?
  1. 系统名称:Windows?7??
  2. 操作系统的架构:amd64??
  3. 总物理内存(M):6041??
  4. 剩余物理内存(M):653??
  5. 已用交换空间(M):15817??
  6. ===========打印编译信息==========??
  7. 总编译时间:0秒??
  8. 已加载类总数:410??
  9. 已卸载类总数:0??
  10. 进程PID=386220??
  11. jvm规范运营商:Oracle?Corporation??
  12. jvm启动时间(毫秒):1447134405258??
  13. ,?sun.java.command=com.fei.JvmInfo,?java.vm.specification.vendor=Oracle?Corporation,?java.vm.vendor=Oracle?Corporation,?java.class.path=E:test2test200targetclasses;E:setupmavenorgapachezookeeperzookeeper3.4.6zookeeper-3.4.6.jar;E:setupmavenorgslf4jslf4j-api1.6.1slf4j-api-1.6.1.jar;E:setupmavenorgslf4jslf4j-log4j121.6.1slf4j-log4j12-1.6.1.jar;E:setupmavenlog4jlog4j1.2.16log4j-1.2.16.jar;E:setupmavenjlinejline.9.94jline-0.9.94.jar;E:setupmavenjunitjunit3.8.1junit-3.8.1.jar;E:setupmavenionettynetty3.7.0.Finalnetty-3.7.0.Final.jar;E:setupmavenorgspringframeworkspring-webmvc4.2.1.RELEASEspring-webmvc-4.2.1.RELEASE.jar;E:setupmavenorgspringframeworkspring-beans4.2.1.RELEASEspring-beans-4.2.1.RELEASE.jar;E:setupmavenorgspringframeworkspring-context4.2.1.RELEASEspring-context-4.2.1.RELEASE.jar;E:setupmavenorgspringframeworkspring-aop4.2.1.RELEASEspring-aop-4.2.1.RELEASE.jar;E:setupmavenaopallianceaopalliance1.0aopalliance-1.0.jar;E:setupmavenorgspringframeworkspring-core4.2.1.RELEASEspring-core-4.2.1.RELEASE.jar;E:setupmavencommons-loggingcommons-logging1.2commons-logging-1.2.jar;E:setupmavenorgspringframeworkspring-expression4.2.1.RELEASEspring-expression-4.2.1.RELEASE.jar;E:setupmavenorgspringframeworkspring-web4.2.1.RELEASEspring-web-4.2.1.RELEASE.jar,?sun.io.unicode.encoding=UnicodeLittle,?user.variant=,?os.arch=amd64,?user.name=weijianfei,?user.language=zh,?java.runtime.version=1.7.0_80-b15,?sun.boot.class.path=D:jre1.7libresources.jar;D:jre1.7librt.jar;D:jre1.7libsunrsasign.jar;D:jre1.7libjsse.jar;D:jre1.7libjce.jar;D:jre1.7libcharsets.jar;D:jre1.7libjfr.jar;D:jre1.7classes,?sun.desktop=windows,?sun.cpu.endian=little,?awt.toolkit=sun.awt.windows.WToolkit,?sun.boot.library.path=D:jre1.7bin,?java.vm.name=Java?HotSpot(TM)?64-Bit?Server?VM,?java.home=D:jre1.7,?java.endorsed.dirs=D:jre1.7libendorsed,?sun.management.compiler=HotSpot?64-Bit?Tiered?Compilers,?java.runtime.name=Java(TM)?SE?Runtime?Environment,?java.library.path=D:jre1.7bin;C:WindowsSunJavabin;C:Windowssystem32;C:Windows;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program?FilesJavajdk1.6.0_45bin;C:Program?FilesJavajdk1.6.0_45jrebin;D:softsvn1.8bin;D:apache-maven-3.2.3bin;D:mysql5.7MySQL?Server?5.7bin;D:mysql5.7MySQL?Utilities?1.3.5;D:mongoDB;.,?file.separator=,?java.specification.vendor=Oracle?Corporation,?java.vm.specification.version=1.7,?sun.java.launcher=SUN_STANDARD,?user.timezone=,?os.name=Windows?7,?path.separator=;,?java.ext.dirs=D:jre1.7libext;C:WindowsSunJavalibext,?sun.arch.data.model=64,?java.specification.name=Java?Platform?API?Specification,?os.version=6.1,?user.script=,?user.country=CN,?java.class.version=51.0,?java.vendor=Oracle?Corporation,?java.vm.specification.name=Java?Virtual?Machine?Specification,?java.specification.version=1.7}??
  14. jvm名称:Java?HotSpot(TM)?64-Bit?Server?VM??
  15. jvm实现版本:24.80-b11??
  16. -Dfile.encoding=UTF-8??
  17. 引导类路径:D:jre1.7libresources.jar;D:jre1.7librt.jar;D:jre1.7libsunrsasign.jar;D:jre1.7libjsse.jar;D:jre1.7libjce.jar;D:jre1.7libcharsets.jar;D:jre1.7libjfr.jar;D:jre1.7classes??
  18. ===========打印内存管理器信息==========??
  19. vm内存管理器:名称=PS?Scavenge,管理的内存区=[PS?Eden?Space,?PS?Survivor?Space],ObjectName=java.lang:type=GarbageCollector,name=PS?Scavenge??
  20. ===========打印垃圾回收信息==========??
  21. 垃圾收集器:名称=PS?MarkSweep,?PS?Perm?Gen]??
  22. head堆:??
  23. ????最大(上限)(M):1344??
  24. ????提交的内存(已申请)(M):91??
  25. non-head非堆:??
  26. ????最大(上限)(M):130??
  27. ????提交的内存(已申请)(M):23??
  28. ===========打印vm各内存区信息==========??
  29. ????名称=Code?Cache??
  30. ?????ObjectName=java.lang:type=MemoryPool,name=Code?Cache??
  31. ????最大(上限)(M)=48??
  32. ????已提交(已申请)(M)=2??
  33. vm内存区:??
  34. ????所属内存管理者=[PS?MarkSweep,?PS?Scavenge]??
  35. ????初始大小(M)=24??
  36. ????已用大小(M)=1??
  37. ????使用率=6%??
  38. ????名称=PS?Survivor?Space??
  39. ?????ObjectName=java.lang:type=MemoryPool,name=PS?Survivor?Space??
  40. ????最大(上限)(M)=3??
  41. ????已提交(已申请)(M)=3??
  42. vm内存区:??
  43. ????所属内存管理者=[PS?MarkSweep]??
  44. ????初始大小(M)=63??
  45. ????已用大小(M)=0??
  46. ????使用率=0%??
  47. ????名称=PS?Perm?Gen??
  48. ?????ObjectName=java.lang:type=MemoryPool,name=PS?Perm?Gen??
  49. ????最大(上限)(M)=82??
  50. ????已提交(已申请)(M)=21??
  51. ===========打印线程==========??
  52. 仍活动的线程总数=5??
  53. 线程总数(被创建并执行过的线程总数)=5??
  54. 所有线程信息:??
  55. ????????Attach?Listener?????????????????RUNNABLE????????????????????5??
  56. ????????Finalizer???????????????????WAITING?????????????????3??
  57. ????????main????????????????????RUNNABLE????????????????????1??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读