Java自带 JVM监控工具
Jdk自带工具之监控工具
- Jdk工具所在默认路径
- 常用工具
- jps
- jps -l 输出完整的包名称
- jps -m 输出所有预加载包和启动类名
- jps -v 输出启动类名和 JVM参数
- jstack 输出线程与堆栈信息
- jinfo 输出环境参数和系统属性
- jmap
- jmap -heap <pid> 输出进程内堆详细信息
- jmap -histo:live <pid> 输出堆中对象的统计信息
- jmap -clstats <pid> 输出类加载器信息
- jmap -finalizerinfo <pid> 输出等待终结的对象信息
- jmap -dump:format=b,file=heapdump.hprof <pid> 生成堆转储快照 dump文件
- jhat <heap dump file> 分析通过 jmap生成的文件
- jstat
- jstat -class <pid> 监视类装载卸载等信息, 如 加载的类数量, 所占空间 等
- jstat -compiler <pid> 统计编译行为信息
- jstat -gc <pid> 监视 GC堆状况信息
- jstat -gccapacity <pid> 监视各区大小
- jstat -gcutil <pid> 监视垃圾收集信息
- jstat -gccause <pid> 监视垃圾收集信息, 与 `-gcutil`一样, 只是多了 GC产生的原因
- jstat -gcnew <pid> 监视新生代统计
- jstat -gcnewcapacity <pid> 监视新生代各区大小
- jstat -gcold <pid> 监视老年代统计
- jstat -gcoldcapacity <pid> 监视老年代各区大小
Jdk工具所在默认路径
- C:\Program Files\Java\jdk1.8.0_121\bin
常用工具
jps
- 查看 JVM里的所有进程与状态 如 进程启动路径, 相关启动参数, 包名, pid 等等
jps -l 输出完整的包名称
C:\Program Files\Java\jdk1.8.0_121\bin>jps -l
15524
15432 org.jetbrains.jps.cmdline.Launcher
1832 sun.tools.jps.Jps
18504 org.jetbrains.jps.cmdline.Launcher
20952 org.jetbrains.jps.cmdline.Launcher
20300 com.wallet.user.api.UserApiApp
jps -m 输出所有预加载包和启动类名
C:\Program Files\Java\jdk1.8.0_121\bin>jps -m
15524
15432 Launcher D:/download/IntelliJ IDEA 2018.1.1/lib/forms_rt.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/commons-codec-1.9.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/jna.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/jna-platform.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/idea_rt.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/commons-logging-1.2.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/jdom.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/aether-dependency-resolver.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/util.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/aether-1.1.0-all.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/maven-aether-provider-3.3.9-all.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/javac2.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/platform-api.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/oro-2.0.8.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/log4j.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/slf4j-api-1.7.10.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/snappy-in-java-0.5.1.jar;D:/download/IntelliJ IDEA
18504 Launcher D:/download/IntelliJ IDEA 2018.1.1/lib/forms_rt.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/commons-codec-1.9.jar;D:/download/IntelliJ IDEA 2018.1.1/lib/jna.jar;D:/download/IntelliJ IDEA
...
...
3592 Jps -m
20300 UserApiApp
jps -v 输出启动类名和 JVM参数
C:\Program Files\Java\jdk1.8.0_121\bin>jps -v
15524 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djb.vmOptionsFile=D:\download\IntelliJ IDEA 2018.1.1\bin\idea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2018.1 -XX:ErrorFile=C:\Users\shawn\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\shawn\java_error_in_idea.hprof
19364 Jps -Denv.class.path=.;%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.; -Dapplication.home=C:\Program Files\Java\jdk1.8.0_121 -Xms8m
15432 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=D:/xampp/htdocs/java/blockchain_project/tour-guide -Dpreload.config.path=C:/Users/shawn/.IntelliJIdea2018.1/config/options -Dexternal.project.config=C:\Users\shawn\.IntelliJIdea2018.1\system\external_build_system\tour-guide.ba791c92 -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=-8305527491704632637 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2018.1 -Didea.home.path=D:\download\IntelliJ IDEA 2018.1.1 -Didea.config.path=C:\Users\shawn\.IntelliJIdea2018.1\config -Didea.plugins.path=C:\Users\shawn\.IntelliJIdea2018.1\config\plugins -Djps.log.dir=C:/Users/shawn/.IntelliJIdea2018.1/system/log/build-log -Djps.fallback.jdk.home=D:/download/IntelliJ IDEA 2018.1.1/jre64 -Djps.fallback.jdk.version=1.8.0_152-release -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/shawn/.IntelliJ
...
...
20300 UserApiApp -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.profiles.active=local -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=56669 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:D:\download\IntelliJ IDEA 2018.1.1\lib\idea_rt.jar=56670:D:\download\IntelliJ IDEA 2018.1.1\bin -Dfile.encoding=UTF-8
jstack 输出线程与堆栈信息
- 通过 jps工具查看需要监控的 pid, 然后使用 jstack <pid>命令查看指定的进程内所有线程与堆栈信息 如 线程 tid, 线程状态[WAITING (parking), TIMED_WAITING (sleeping), RUNNABLE], 以及锁相关信息
C:\Program Files\Java\jdk1.8.0_121\bin>jstack 17416
...
...
"http-nio-8181-exec-9" #74 daemon prio=5 os_prio=0 tid=0x000000001fc42000 nid=0x33c8 waiting on condition [0x0000000022fbe000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x000000079107a370> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)Locked ownable synchronizers:- None
...
...
Found one Java-level deadlock:
=============================
"正在等待的线程名称 t1"waiting for ownable synchronizer 0x000000001fc40000, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),which is held by "持有死锁的线程名称 t2"
"正在等待的线程名称 t2"waiting for ownable synchronizer 0x000000001fc48000, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),which is held by "持有死锁的线程名称 t1"
...
...
- 查出了一个死锁信息, 可以看出相互等待互各自持有的锁
jinfo 输出环境参数和系统属性
- 通过 jps工具查看需要监控的 pid, 然后使用 jinfo <pid>命令查看指定运行的程序, 所有环境参数和系统属性和 JVM相关信息
jmap
- 通过 jps工具查看需要监控的 pid, 然后使用 jmap <pid>命令查看指定运行的程序, 内存相关信息
jmap -heap <pid> 输出进程内堆详细信息
C:\Program Files\Java\jdk1.8.0_121\bin>jmap -heap 20300
Attaching to process ID 20300, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13using thread-local object allocation.
Parallel GC with 4 thread(s)Heap Configuration:MinHeapFreeRatio = 0MaxHeapFreeRatio = 100MaxHeapSize = 3196059648 (3048.0MB)NewSize = 67108864 (64.0MB)MaxNewSize = 1065353216 (1016.0MB)OldSize = 134217728 (128.0MB)NewRatio = 2SurvivorRatio = 8MetaspaceSize = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize = 17592186044415 MBG1HeapRegionSize = 0 (0.0MB)Heap Usage:
PS Young Generation
Eden Space:capacity = 477102080 (455.0MB)used = 442908368 (422.3903350830078MB)free = 34193712 (32.60966491699219MB)92.83304067758414% used
From Space:capacity = 15728640 (15.0MB)used = 8778432 (8.37176513671875MB)free = 6950208 (6.62823486328125MB)55.811767578125% used
To Space:capacity = 14680064 (14.0MB)used = 0 (0.0MB)free = 14680064 (14.0MB)0.0% used
PS Old Generationcapacity = 130023424 (124.0MB)used = 47620208 (45.41416931152344MB)free = 82403216 (78.58583068847656MB)36.624330089938255% used30756 interned Strings occupying 3701648 bytes.
jmap -histo:live <pid> 输出堆中对象的统计信息
- 指定 live可选项, 则只输出活动的对象
- 统计信息 编号num, 对象数量#instances, 内存大小#bytes, 类class name
C:\Program Files\Java\jdk1.8.0_121\bin>jmap -histo:live 20300num #instances #bytes class name
----------------------------------------------1: 99666 13990288 [C2: 37191 3272808 java.lang.reflect.Method3: 97717 2345208 java.lang.String4: 50241 1607712 java.util.concurrent.ConcurrentHashMap$Node5: 11519 1290712 java.lang.Class6: 28143 1125720 java.util.LinkedHashMap$Entry7: 20851 1063288 [Ljava.lang.Object;8: 13723 934840 [Ljava.util.HashMap$Node;9: 29112 931584 java.lang.ref.WeakReference10: 15737 881272 java.util.LinkedHashMap11: 25661 821152 java.util.HashMap$Node12: 5303 754808 [B13: 5312 618064 [I14: 21366 472712 [Ljava.lang.Class;15: 341 465776 [Ljava.util.concurrent.ConcurrentHashMap$Node;16: 11521 460840 java.lang.ref.SoftReference17: 17591 422184 java.util.ArrayList18: 22564 361024 java.lang.Object19: 13440 322560 java.beans.MethodRef
...
...
Total 791101 41319560
...
...
class name | 类型 |
---|---|
B | byte |
C | char |
D | double |
F | float |
I | int |
J | long |
Z | boolean |
[ | 数组, 如 [I是 int[] |
[L+package and class name | 表示对象 |
jmap -clstats <pid> 输出类加载器信息
- 参数
-clstats
是-permstat
的替代方案, 在 JDK8之前, 通过-permstat
打印类加载器的数据
C:\Program Files\Java\jdk1.8.0_121\bin>jmap -clstats 20300
Attaching to process ID 20300, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
finding class loader instances ..done.
computing per loader stat ..done.
please wait.. computing liveness..............................................................liveness analysis may be inaccurate ...
class_loader classes bytes parent_loader alive? type<bootstrap> 2948 5125781 null live <internal>
0x0000000703933390 1 880 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000701ed4ee8 1 880 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000701b44ab8 1 1473 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000701ed47e0 1 880 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000701861f88 0 0 0x0000000701814b00 live java/util/ResourceBundle$RBClassLoader@0x00000007c00f5470
0x0000000701b44ea0 1 1473 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000701ed43f8 1 880 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000702bb43a0 1 1471 null dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
0x0000000703932c88 1 880 0x0000000701814b00 dead sun/reflect/DelegatingClassLoader@0x00000007c0009df8
...
...
total = 111 11286 19084340 N/A alive=8, dead=103 N/A
...
...
jmap -finalizerinfo <pid> 输出等待终结的对象信息
C:\Program Files\Java\jdk1.8.0_121\bin>jmap -finalizerinfo 20300
Attaching to process ID 20300, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
Number of objects pending for finalization: 0
- 0 当前没有等待完成的对象的信息
jmap -dump:format=b,file=heapdump.hprof <pid> 生成堆转储快照 dump文件
- 参数 live可选项, 则堆中只有活动的对象会被转储
- 指定 hprof二进制文件格式转储 Java堆信息 dump到指定文件中
jhat <heap dump file> 分析通过 jmap生成的文件
- 当堆文件比较大, 可能会报堆空间不足错误, 可以加参数 jhat -J-Xmx512m <heap dump file>, 内存大小可根据自己电脑进行设置
- 分析内容, 可以 Web形式显示(http://localhost:7000/), 并且在 Web页面中执行 OQL(对象查询语言)
jstat
- 通过 jps工具查看需要监控的 pid, 然后使用 jstat
-<option>
<pid>命令查看指定运行的程序, JVM统计信息
jstat -class <pid> 监视类装载卸载等信息, 如 加载的类数量, 所占空间 等
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -class 1272
Loaded Bytes Unloaded Bytes Time10909 20257.2 0 0.0 12.98
jstat -compiler <pid> 统计编译行为信息
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -compiler 1272
Compiled Failed Invalid Time FailedType FailedMethod7058 0 0 2.57 0
jstat -gc <pid> 监视 GC堆状况信息
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gc 1272S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
12288.0 13312.0 9248.1 0.0 531456.0 320790.7 123904.0 45498.0 53720.0 52313.2 6872.0 6541.4 16 0.211 2 0.183 0.394
字段 | 说明 |
---|---|
S0C | 第一个幸存区的大小 |
S1C | 第二个幸存区的大小 |
S0U | 第一个幸存区的使用大小 |
S1U | 第二个幸存区的使用大小 |
EC | 伊甸园区的大小 |
EU | 伊甸园区的使用大小 |
OC | 老年代大小 |
OU | 老年代使用大小 |
MC | 方法区大小 |
MU | 方法区使用大小 |
CCSC | 压缩类空间大小 |
CCSU | 压缩类空间使用大小 |
YGC | 年轻代垃圾回收次数 |
YGCT | 年轻代垃圾回收消耗时间 |
FGC | 老年代垃圾回收次数 |
FGCT | 老年代垃圾回收消耗时间 |
GCT | 垃圾回收消耗总时间 |
jstat -gccapacity <pid> 监视各区大小
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gccapacity 1272NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC65536.0 1040384.0 558080.0 12288.0 13312.0 531456.0 131072.0 2080768.0 123904.0 123904.0 0.0 1095680.0 53720.0 0.0 1048576.0 6872.0 16 2
字段 | 说明 |
---|---|
NGCMN | 新生代最小容量 |
NGCMX | 新生代最大容量 |
NGC | 当前新生代容量 |
S0C | 第一个幸存区的大小 |
S1C | 第二个幸存区的大小 |
EC | 伊甸园区的大小 |
OGCMN | 老年代最小容量 |
OGCMX | 老年代最大容量 |
OGC | 当前老年代大小 |
OC | 老年代大小 |
MCMN | 最小元数据容量 |
MCMX | 最大元数据容量 |
MC | 当前元数据空间大小 |
CCSMN | 最小压缩类空间大小 |
CCSMX | 最大压缩类空间大小 |
CCSC | 压缩类空间大小 |
YGC | 年轻代垃圾回收次数 |
FGC | 老年代垃圾回收次数 |
jstat -gcutil <pid> 监视垃圾收集信息
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gcutil 1272S0 S1 E O M CCS YGC YGCT FGC FGCT GCT75.26 0.00 59.62 36.72 97.38 95.19 16 0.211 2 0.183 0.394
字段 | 说明 |
---|---|
S0 | 第一个幸存区使用的空间百分比 |
S1 | 第二个幸存区使用的空间百分比 |
E | 伊甸园区使用的空间百分比 |
O | 老年代区使用的空间百分比 |
M | 元数据区使用的空间百分比 |
CCS | 压缩使用的空间百分比 |
YGC | 年轻代垃圾回收次数 |
YGCT | 年轻代垃圾回收消耗时间(单位秒) |
FGC | 老年代垃圾回收次数 |
FGCT | 老年代垃圾回收消耗时间(单位秒) |
GCT | 垃圾回收消耗总时间(单位秒) |
jstat -gccause <pid> 监视垃圾收集信息, 与 -gcutil
一样, 只是多了 GC产生的原因
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gccause 1272S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC 75.26 0.00 59.46 36.72 97.38 95.19 16 0.211 2 0.183 0.394 Allocation Failure No GC
字段 | 说明 |
---|---|
… | … |
LGCC | 最后一次 GC原因 |
GCC | 当前 GC原因(No GC为当前没有执行 GC) |
jstat -gcnew <pid> 监视新生代统计
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gcnew 1272S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
12288.0 13312.0 9248.1 0.0 1 15 13312.0 531456.0 318598.4 16 0.211
字段 | 说明 |
---|---|
S0C | 第一个幸存区大小 |
S1C | 第二个幸存区的大小 |
S0U | 第一个幸存区的使用大小 |
S1U | 第二个幸存区的使用大小 |
TT | 对象在新生代存活的次数 |
MTT | 对象在新生代存活的最大次数 |
DSS | 期望的幸存区大小 |
EC | 伊甸园区的大小 |
EU | 伊甸园区的使用大小 |
YGC | 年轻代垃圾回收次数 |
YGCT | 年轻代垃圾回收消耗时间 |
jstat -gcnewcapacity <pid> 监视新生代各区大小
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gcnewcapacity 1272NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC65536.0 1040384.0 558080.0 346624.0 12288.0 346624.0 13312.0 1039360.0 531456.0 16 2
字段 | 说明 |
---|---|
NGCMN | 新生代最小容量 |
NGCMX | 新生代最大容量 |
NGC | 当前新生代容量 |
S0CMX | 最大第一个幸存区大小 |
S0C | 当前第一个幸存区大小 |
S1CMX | 最大第二个幸存区大小 |
S1C | 当前第二个幸存区大小 |
ECMX | 最大伊甸园区大小 |
EC | 当前伊甸园区大小 |
YGC | 年轻代垃圾回收次数 |
FGC | 老年代回收次数 |
jstat -gcold <pid> 监视老年代统计
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gcold 1272MC MU CCSC CCSU OC OU YGC FGC FGCT GCT53720.0 52313.2 6872.0 6541.4 123904.0 45498.0 16 2 0.183 0.394
字段 | 说明 |
---|---|
MC | 方法区大小 |
MU | 方法区使用大小 |
CCSC | 压缩类空间大小 |
CCSU | 压缩类空间使用大小 |
OC | 老年代大小 |
OU | 老年代使用大小 |
YGC | 年轻代垃圾回收次数 |
FGC | 老年代垃圾回收次数 |
FGCT | 老年代垃圾回收消耗时间 |
GCT | 垃圾回收消耗总时间 |
jstat -gcoldcapacity <pid> 监视老年代各区大小
C:\Program Files\Java\jdk1.8.0_121\bin>jstat -gcoldcapacity 1272OGCMN OGCMX OGC OC YGC FGC FGCT GCT131072.0 2080768.0 123904.0 123904.0 16 2 0.183 0.394
字段 | 说明 |
---|---|
OGCMN | 老年代最小容量 |
OGCMX | 老年代最大容量 |
OGC | 当前老年代大小 |
OC | 老年代大小 |
YGC | 年轻代垃圾回收次数 |
FGC | 老年代垃圾回收次数 |
FGCT | 老年代垃圾回收消耗时间 |
GCT | 垃圾回收消耗总时间 |
如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!
Java自带 JVM监控工具相关推荐
- Java线程及Jvm监控工具
"昨天晚上很冷让我遇见你,你站在德克士门口等你男朋友, 我站在你对面街上看了你那么久, 你男朋友为何要对你发火,你俩走了好几条街为何他不把你的手放进他的衣兜里, 为什么你男朋友要走在前面,为 ...
- Java 自带性能监控工具:监视和管理控制台 jconsole 的使用
添加链接描述 tomcat内存溢出问题记录 Java程序堆内存使用率很高的一般分析思路
- Java 自带性能监控工具:监视和管理控制台jconsole的使用
关于JConsole工具的使用请参见:http://blog.csdn.net/defonds/article/details/45064297
- java hprof 分析_[转]Sun JDK自带JVM内存使用分析工具HProf
Sun JDK自带JVM内存使用分析工具HProf 2008-10-14 11:27 Sun JDK自带JVM内存使用分析工具HProf 使用Sun JDK自带JVM内存使用分析工具HPr ...
- Java 故障处理与性能监控工具
文章目录 概述 基础工具 jps jstat jinfo jmap jhat jstack 高级工具 VisualVM VisualVM 的主要功能 Arthas GC Easy 概述 在使用 Jav ...
- 一款轻量的JVM监控工具——Jvmm
目录 关于Jvmm 功能支持 下载地址 快速上手 监控功能 查看操作系统基础信息 查看操作系统CPU负载.内存使用情况.磁盘占用情况 查看类加载统计 查看类加载器实例信息 查看编译统计信息 查看垃圾收 ...
- 【2022最新Java面试宝典】—— Java虚拟机(JVM)面试题(51道含答案)
目录 一.Java内存模型 1. 我们开发人员编写的Java代码是怎么让电脑认识的 2. 为什么说java是跨平台语言 3. Jdk和Jre和JVM的区别 4. 说一下 JVM由那些部分组成,运行流程 ...
- 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)读书笔记
前言 我在读 深入理解java虚拟机 这本书,把整体其中的关键点标记了,希望自己对它有个不一样的理解,也希望大家能看看这本写的很好的书 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) pd ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
最新文章
- ESXi6.7安装流程和bug处理
- (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务
- Windows 10 install Pycharm 开发环境
- 算法4------字符串的字典序最长子序列
- 堆排序算法的实现 (冒泡排序)
- 【C语言】(数组方式)求n名同学的平均成绩
- elasticsearch 条件去重_Elasticsearch学习之查询去重
- [Ext JS 7]基于NPM的开发
- 1124Js基础语法
- 台湾台积电为华为两肋插刀,扛住压力,单日损失1426亿元
- 用R语言实现数据离散化
- 图像处理_形态学运算中的膨胀与腐蚀直观理解
- eclipse环境NDK问题汇总
- 如何正视自己的劣势?面试!
- 3d vision可以卸载吗_3D Vision是什么
- App上实现用户手写签名保存为透明PNG格式图片
- 哄女朋友玩的c语言编程,哄女朋友开心的小套路 逗女朋友开心的话套路
- PHP判定浏览器UA进行跳转
- S32K144(2)时钟配置
- tenda服务器端口映射,腾达(Tenda)路由器端口映射设置教程 | 192路由网
热门文章
- C#/.Net 不要再使用Aspose和iTextSharp啦!QuestPDF操作生成PDF更快更高效!
- C++跑酷闯关游戏2.0
- python儿童编程例子代码-认识Python
- 富途开放接口get_multiple_history_kline和get_history_klineAPI接口失败
- bulk material
- snmp v3 参数_snmp++开发snmpv3注意事项
- 电气设计及电工基础经验
- angular语言前端开发_Angular基于什么语言
- 脑机接口技术创新与产业发展(2021)报告解读
- SQL总结-DDL规范