原文地址: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#">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#">copy
?
- ????????????
-
- ????????????}?
-
- ????????????}??
-
? ? 然后,点击启动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#">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#">copy
?
- ??
-
-
- ????
-
- ????
-
- ??????????????????
-
- ????????System.out.println(
-
- ????????
-
- ????????printCompilationInfo();??
-
- ????????System.out.println(
-
- ????????
-
- ????????printRuntimeInfo();??
-
- ????????System.out.println(
-
- ????????
-
- ????????printGarbageCollectorInfo();??
-
- ????????System.out.println(
-
- ????????
-
- ????????printMemoryPoolInfo();??
-
- ????????System.out.println(
-
- ??????????
-
- ??????
-
- ????
-
- ????????
-
- ????????
-
- ????????
-
- ????????
-
- ??????????
-
- ????????????
-
- ????????????
-
- ????????????System.out.println(
-
- ????????????System.out.println(
-
- ????????????
-
- ????????????
-
- ????????????System.out.println(
-
- ????????????System.out.println(
-
- ????}??
-
- ????
-
- ????????????
- [])?
- ????????????method.setAccessible(
-
- ????????}?
-
- ????????????????
-
- ????????????????
-
- ????????????
-
- ????????????
-
- ????????????
-
- ????}??
-
- ????
-
- ????????System.out.println(
-
- ????????
-
- ????????}??
-
- ??????
-
- ????????ClassLoadingMXBean?classLoad=?ManagementFactory.getClassLoadingMXBean();??
-
- ????????System.out.println(
-
- ??????????
-
- ??????
-
- ????????RuntimeMXBean?runtime?=?ManagementFactory.getRuntimeMXBean();??
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????
-
- ????????
-
- ????????
-
- ????????List?args?=?runtime.getInputArguments();??
-
- ????????????System.out.println(
-
- ????????????????System.out.println(arg);??
-
- ????????}??
-
- ????????System.out.println(
-
- ????}??
-
- ????
- ?managers?=?ManagementFactory.getMemoryManagerMXBeans();??
- ????????
-
- ????????????????System.out.println(
-
- ????????????}??
-
- ????}??
-
- ????
- ?garbages?=?ManagementFactory.getGarbageCollectorMXBeans();??
- ????????
-
- ????????+garbage.getCollectionTime()+
-
- ????}??
-
- ????
-
- ????????MemoryUsage?headMemory?=?memory.getHeapMemoryUsage();??
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ??????
-
- ????????List?pools?=?ManagementFactory.getMemoryPoolMXBeans();??
-
- ????????????
-
- ????????????????
-
- ????????????????????????+
-
- ????????????????????????+
-
- ????????????????????????+
-
- ????????????}??
-
- ????}??
-
- ????
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????System.out.println(
-
- ????????
-
- ?????????
-
- ????????????System.out.println(
-
- ????????????
-
- ????????????????????????+
-
- ????????????}??
-
- ????????
- ?
- ????????????ThreadInfo[]?threadInfos?=?thread.getThreadInfo(threadIds);??
-
- ????????????System.out.println(
-
- ????????????????System.out.println(
-
- ????????????}??
-
- ??????????
-
- ??????
-
- ????????
-
- ????????????????||?
-
- }??
<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#">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#">copy
?
- 系统名称:Windows?7??
-
- 操作系统的架构:amd64??
-
- 总物理内存(M):6041??
-
- 剩余物理内存(M):653??
-
- 已用交换空间(M):15817??
-
- ===========打印编译信息==========??
-
- 总编译时间:0秒??
-
- 已加载类总数:410??
-
- 已卸载类总数:0??
-
- 进程PID=386220??
-
- jvm规范运营商:Oracle?Corporation??
-
- jvm启动时间(毫秒):1447134405258??
-
- ,?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}??
-
- jvm名称:Java?HotSpot(TM)?64-Bit?Server?VM??
-
- jvm实现版本:24.80-b11??
-
- -Dfile.encoding=UTF-8??
|