- 浏览: 3023168 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
接上之前发的几帖(1) (2) (3),再回过头来看看如果不是用Java API,有没有什么工具能直接看到某个Java进程的jvmstat的各个monitor的值。
Sun JDK自带的jstat工具其实就可以看到HotSpot支持的所有jvmstat信息,只不过官方文档上没把相关的隐藏参数写出来而已。
下面还是用例子来说明。这次的目标是查看一个跑在Windows XP SP3, Sun JDK 6 update 17上的Eclipse的状况。
首先用jps工具查出Eclipse进程的vmid:
好,目标就是ID为1996的进程。然后使用jstat,加上一个文档上没记录的-snap参数:
这里已经可以看到很多信息,像是HotSpot的动态编译器用了多少时间,整个VM加载了多少个类卸载了多少个类,启动路径、参数,VM的版本等。不过前面一帖的列表里明明有更多的monitor,它们跑哪儿去了呢?
于是再多加一个-J-Djstat.showUnsupported=true参数来跑jstat:
嗯现在信息就全了不是?
HotSpot并不是没记录内部信息,只是还没什么特别好的工具把它们整理、显示出来而已。这点上JRockit Mission Control/Flight Recorder就强悍多了。
===========================================================
P.S. 有人问为什么VisualVM的VisualGC插件里的histogram面板有时候会显示不出东西。其实很简单:只是这功能不支持ParallelGC而已。
VisualGC需要通过jvmstat API来读取名为"sun.gc.generation.0.agetable.size"的PerfData计数器的值,在visualgc.jar里的com.sun.jvmstat.tools.visualgc.MonitoredVmModel.initialize_common()。
这个计数器是在全局的ageTable初始化时创建的。HotSpot VM里DefNew/ParNew/G1等涉及young GC的实现都用到了全局的ageTable,但ParallelScavange则没有。于是在使用UseParallelGC/UseParallelOldGC时,这个计数器就不存在,VisualGC就会认为目标JVM不支持显示histogram的功能。
(注:Windows 7上的话JDK7里的VisualVM的VisualGC插件的内容可以在%User%/AppData/Roaming/.visualvm/7/modules/com-sun-tools-visualvm-modules-visualgc.jar 以及 %User%/AppData/Roaming/.visualvm/7/modules/ext/visualgc.jar 找到。
VisualGC插件自身没开源,所以就不能指望从visualvm.java.net那边找到它的源码了)
Sun JDK自带的jstat工具其实就可以看到HotSpot支持的所有jvmstat信息,只不过官方文档上没把相关的隐藏参数写出来而已。
下面还是用例子来说明。这次的目标是查看一个跑在Windows XP SP3, Sun JDK 6 update 17上的Eclipse的状况。
首先用jps工具查出Eclipse进程的vmid:
D:\>jps 1028 Jps 1996 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
好,目标就是ID为1996的进程。然后使用jstat,加上一个文档上没记录的-snap参数:
D:\>jstat -snap 1996 java.ci.totalTime=11274276735 java.cls.loadedClasses=15981 java.cls.sharedLoadedClasses=0 java.cls.sharedUnloadedClasses=0 java.cls.unloadedClasses=53 java.property.java.class.path="D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar;lombok.jar" java.property.java.endorsed.dirs="C:\sdk\Java\jdk1.6.0_17\jre\lib\endorsed" java.property.java.ext.dirs="C:\sdk\Java\jdk1.6.0_17\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext" java.property.java.home="C:\sdk\Java\jdk1.6.0_17\jre" java.property.java.library.path="C:\sdk\Java\jdk1.6.0_20\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Perl\site\bin;C:\Perl\bin;D:\sdk\Python31\;D:\sdk\Ruby\bin;;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\sdk\SlikSvn\bin\;C:\sdk\TortoiseSVN\bin;C:\sdk\TortoiseHg;C:\sdk\Git\cmd;D:\sdk\ChezScheme7.4d\bin\i3nt;C:\sdk\Graphviz2.26.3\bin;D:\sdk\GnuWin32\bin;C:\Program Files\Haskell\bin;D:\sdk\ghc-6.10.4\bin;D:\sdk\apache-maven-2.2.1\bin;D:\sdk\Python31\Scripts;D:\script;D:\sdk\apache-ant-1.7.1\bin" java.property.java.version="1.6.0_17" java.property.java.vm.info="mixed mode" java.property.java.vm.name="Java HotSpot(TM) Client VM" java.property.java.vm.specification.name="Java Virtual Machine Specification" java.property.java.vm.specification.vendor="Sun Microsystems Inc." java.property.java.vm.specification.version="1.0" java.property.java.vm.vendor="Sun Microsystems Inc." java.property.java.vm.version="14.3-b01" java.rt.vmArgs="-Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar -XX:MaxPermSize=256m" java.rt.vmFlags="" java.threads.daemon=18 java.threads.live=23 java.threads.livePeak=33 java.threads.started=3743
这里已经可以看到很多信息,像是HotSpot的动态编译器用了多少时间,整个VM加载了多少个类卸载了多少个类,启动路径、参数,VM的版本等。不过前面一帖的列表里明明有更多的monitor,它们跑哪儿去了呢?
于是再多加一个-J-Djstat.showUnsupported=true参数来跑jstat:
D:\>jstat -J-Djstat.showUnsupported=true -snap 1996 java.ci.totalTime=11274276735 java.cls.loadedClasses=15981 java.cls.sharedLoadedClasses=0 java.cls.sharedUnloadedClasses=0 java.cls.unloadedClasses=53 java.property.java.class.path="D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar;lombok.jar" java.property.java.endorsed.dirs="C:\sdk\Java\jdk1.6.0_17\jre\lib\endorsed" java.property.java.ext.dirs="C:\sdk\Java\jdk1.6.0_17\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext" java.property.java.home="C:\sdk\Java\jdk1.6.0_17\jre" java.property.java.library.path="C:\sdk\Java\jdk1.6.0_20\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Perl\site\bin;C:\Perl\bin;D:\sdk\Python31\;D:\sdk\Ruby\bin;;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\sdk\SlikSvn\bin\;C:\sdk\TortoiseSVN\bin;C:\sdk\TortoiseHg;C:\sdk\Git\cmd;D:\sdk\ChezScheme7.4d\bin\i3nt;C:\sdk\Graphviz2.26.3\bin;D:\sdk\GnuWin32\bin;C:\Program Files\Haskell\bin;D:\sdk\ghc-6.10.4\bin;D:\sdk\apache-maven-2.2.1\bin;D:\sdk\Python31\Scripts;D:\script;D:\sdk\apache-ant-1.7.1\bin" java.property.java.version="1.6.0_17" java.property.java.vm.info="mixed mode" java.property.java.vm.name="Java HotSpot(TM) Client VM" java.property.java.vm.specification.name="Java Virtual Machine Specification" java.property.java.vm.specification.vendor="Sun Microsystems Inc." java.property.java.vm.specification.version="1.0" java.property.java.vm.vendor="Sun Microsystems Inc." java.property.java.vm.version="14.3-b01" java.rt.vmArgs="-Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar -XX:MaxPermSize=256m" java.rt.vmFlags="" java.threads.daemon=18 java.threads.live=23 java.threads.livePeak=33 java.threads.started=3744 sun.ci.compilerThread.0.compiles=6302 sun.ci.compilerThread.0.method="" sun.ci.compilerThread.0.time=4923396 sun.ci.compilerThread.0.type=1 sun.ci.lastFailedMethod="org/eclipse/jdt/internal/core/CompilationUnitStructureRequestor createTypeInfo" sun.ci.lastFailedType=1 sun.ci.lastInvalidatedMethod="" sun.ci.lastInvalidatedType=0 sun.ci.lastMethod="org/eclipse/ui/internal/layout/TrimArea computeWrappedTrim" sun.ci.lastSize=577 sun.ci.lastType=1 sun.ci.nmethodCodeSize=5622944 sun.ci.nmethodSize=13224788 sun.ci.osrBytes=16202 sun.ci.osrCompiles=29 sun.ci.osrTime=159843303 sun.ci.standardBytes=1206710 sun.ci.standardCompiles=6267 sun.ci.standardTime=11114433432 sun.ci.threads=1 sun.ci.totalBailouts=6 sun.ci.totalCompiles=6296 sun.ci.totalInvalidates=0 sun.cls.classInitTime=57799894653 sun.cls.classLinkedTime=79687099728 sun.cls.classVerifyTime=192186673173 sun.cls.initializedClasses=11406 sun.cls.isUnsyncloadClassSet=0 sun.cls.jniDefineClassNoLockCalls=1 sun.cls.jvmDefineClassNoLockCalls=106 sun.cls.jvmFindLoadedClassNoLockCalls=0 sun.cls.linkedClasses=13248 sun.cls.loadInstanceClassFailRate=0 sun.cls.loadedBytes=20912352 sun.cls.methodBytes=13457952 sun.cls.nonSystemLoaderLockContentionRate=62 sun.cls.sharedLoadedBytes=0 sun.cls.sharedUnloadedBytes=0 sun.cls.systemLoaderLockContentionRate=0 sun.cls.time=96533747082 sun.cls.unloadedBytes=47848 sun.cls.unsafeDefineClassCalls=106 sun.gc.cause="No GC" sun.gc.collector.0.invocations=1035 sun.gc.collector.0.lastEntryTime=340630839536481 sun.gc.collector.0.lastExitTime=340630849279881 sun.gc.collector.0.name="Copy" sun.gc.collector.0.time=9872748234 sun.gc.collector.1.invocations=2950 sun.gc.collector.1.lastEntryTime=530223797079243 sun.gc.collector.1.lastExitTime=530224765895475 sun.gc.collector.1.name="MSC" sun.gc.collector.1.time=2813934945510 sun.gc.generation.0.agetable.bytes.00=0 sun.gc.generation.0.agetable.bytes.01=343736 sun.gc.generation.0.agetable.bytes.02=0 sun.gc.generation.0.agetable.bytes.03=0 sun.gc.generation.0.agetable.bytes.04=0 sun.gc.generation.0.agetable.bytes.05=0 sun.gc.generation.0.agetable.bytes.06=0 sun.gc.generation.0.agetable.bytes.07=0 sun.gc.generation.0.agetable.bytes.08=0 sun.gc.generation.0.agetable.bytes.09=0 sun.gc.generation.0.agetable.bytes.10=0 sun.gc.generation.0.agetable.bytes.11=0 sun.gc.generation.0.agetable.bytes.12=0 sun.gc.generation.0.agetable.bytes.13=0 sun.gc.generation.0.agetable.bytes.14=0 sun.gc.generation.0.agetable.bytes.15=0 sun.gc.generation.0.agetable.size=16 sun.gc.generation.0.capacity=7864320 sun.gc.generation.0.maxCapacity=41287680 sun.gc.generation.0.minCapacity=3211264 sun.gc.generation.0.name="new" sun.gc.generation.0.space.0.capacity=6291456 sun.gc.generation.0.space.0.initCapacity=0 sun.gc.generation.0.space.0.maxCapacity=33030144 sun.gc.generation.0.space.0.name="eden" sun.gc.generation.0.space.0.used=742104 sun.gc.generation.0.space.1.capacity=786432 sun.gc.generation.0.space.1.initCapacity=0 sun.gc.generation.0.space.1.maxCapacity=4128768 sun.gc.generation.0.space.1.name="s0" sun.gc.generation.0.space.1.used=0 sun.gc.generation.0.space.2.capacity=786432 sun.gc.generation.0.space.2.initCapacity=0 sun.gc.generation.0.space.2.maxCapacity=4128768 sun.gc.generation.0.space.2.name="s1" sun.gc.generation.0.space.2.used=0 sun.gc.generation.0.spaces=3 sun.gc.generation.1.capacity=93532160 sun.gc.generation.1.maxCapacity=495583232 sun.gc.generation.1.minCapacity=38731776 sun.gc.generation.1.name="old" sun.gc.generation.1.space.0.capacity=93532160 sun.gc.generation.1.space.0.initCapacity=38731776 sun.gc.generation.1.space.0.maxCapacity=495583232 sun.gc.generation.1.space.0.name="old" sun.gc.generation.1.space.0.used=51151056 sun.gc.generation.1.spaces=1 sun.gc.generation.2.capacity=86245376 sun.gc.generation.2.maxCapacity=268435456 sun.gc.generation.2.minCapacity=12582912 sun.gc.generation.2.name="perm" sun.gc.generation.2.space.0.capacity=86245376 sun.gc.generation.2.space.0.initCapacity=12582912 sun.gc.generation.2.space.0.maxCapacity=268435456 sun.gc.generation.2.space.0.name="perm" sun.gc.generation.2.space.0.used=86128864 sun.gc.generation.2.spaces=1 sun.gc.lastCause="System.gc()" sun.gc.policy.collectors=2 sun.gc.policy.desiredSurvivorSize=393216 sun.gc.policy.generations=3 sun.gc.policy.maxTenuringThreshold=15 sun.gc.policy.name="Copy:MSC" sun.gc.policy.tenuringThreshold=15 sun.gc.tlab.alloc=40188 sun.gc.tlab.allocThreads=7 sun.gc.tlab.fastWaste=0 sun.gc.tlab.fills=7 sun.gc.tlab.gcWaste=36050 sun.gc.tlab.maxFastWaste=0 sun.gc.tlab.maxFills=1 sun.gc.tlab.maxGcWaste=18546 sun.gc.tlab.maxSlowAlloc=0 sun.gc.tlab.maxSlowWaste=0 sun.gc.tlab.slowAlloc=0 sun.gc.tlab.slowWaste=0 sun.os.hrt.frequency=2992520000 sun.os.hrt.ticks=530286231578049 sun.perfdata.majorVersion=2 sun.perfdata.minorVersion=0 sun.perfdata.overflow=0 sun.perfdata.size=65536 sun.perfdata.timestamp=2374418412 sun.perfdata.used=14496 sun.property.sun.boot.class.path="C:\sdk\Java\jdk1.6.0_17\jre\lib\resources.jar;C:\sdk\Java\jdk1.6.0_17\jre\lib\rt.jar;C:\sdk\Java\jdk1.6.0_17\jre\lib\sunrsasign.jar;C:\sdk\Java\jdk1.6.0_17\jre\lib\jsse.jar;C:\sdk\Java\jdk1.6.0_17\jre\lib\jce.jar;C:\sdk\Java\jdk1.6.0_17\jre\lib\charsets.jar;C:\sdk\Java\jdk1.6.0_17\jre\classes;lombok.jar" sun.property.sun.boot.library.path="C:\sdk\Java\jdk1.6.0_17\jre\bin" sun.rt._sync_ContendedLockAttempts=111725 sun.rt._sync_Deflations=25166 sun.rt._sync_EmptyNotifications=0 sun.rt._sync_FailedSpins=0 sun.rt._sync_FutileWakeups=3979 sun.rt._sync_Inflations=25184 sun.rt._sync_MonExtant=14336 sun.rt._sync_MonInCirculation=0 sun.rt._sync_MonScavenged=0 sun.rt._sync_Notifications=101533 sun.rt._sync_Parks=125094 sun.rt._sync_PrivateA=0 sun.rt._sync_PrivateB=0 sun.rt._sync_SlowEnter=0 sun.rt._sync_SlowExit=0 sun.rt._sync_SlowNotify=0 sun.rt._sync_SlowNotifyAll=0 sun.rt._sync_SuccessfulSpins=0 sun.rt.applicationTime=527384947891815 sun.rt.createVmBeginTime=1288056340317 sun.rt.createVmEndTime=1288056341110 sun.rt.internalVersion="Java HotSpot(TM) Client VM (14.3-b01) for windows-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 00:52:06 by "java_re" with MS VC++ 7.1" sun.rt.interruptedBeforeIO=0 sun.rt.interruptedDuringIO=0 sun.rt.javaCommand="D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar -os win32 -ws win32 -arch x86 -showsplash -launcher D:\editor\eclipse_jee\eclipse.exe -name Eclipse --launcher.library D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519\eclipse_1206.dll -startup D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar -exitdata a0c_44 -product org.eclipse.epp.package.jee.product -vm C:/sdk/Java/jdk1.6.0_17/bin/javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar -XX:MaxPermSize=256m -jar D:\editor\eclipse_jee\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar" sun.rt.jvmCapabilities="1000000000000000000000000000000000000000000000000000000000000000" sun.rt.jvmVersion=235077633 sun.rt.safepointSyncTime=971909442 sun.rt.safepointTime=2837457553374 sun.rt.safepoints=8467 sun.rt.threadInterruptSignaled=0 sun.rt.vmInitDoneTime=1288056340674 sun.threads.vmOperationTime=2824580448243
嗯现在信息就全了不是?
HotSpot并不是没记录内部信息,只是还没什么特别好的工具把它们整理、显示出来而已。这点上JRockit Mission Control/Flight Recorder就强悍多了。
===========================================================
P.S. 有人问为什么VisualVM的VisualGC插件里的histogram面板有时候会显示不出东西。其实很简单:只是这功能不支持ParallelGC而已。
VisualGC需要通过jvmstat API来读取名为"sun.gc.generation.0.agetable.size"的PerfData计数器的值,在visualgc.jar里的com.sun.jvmstat.tools.visualgc.MonitoredVmModel.initialize_common()。
这个计数器是在全局的ageTable初始化时创建的。HotSpot VM里DefNew/ParNew/G1等涉及young GC的实现都用到了全局的ageTable,但ParallelScavange则没有。于是在使用UseParallelGC/UseParallelOldGC时,这个计数器就不存在,VisualGC就会认为目标JVM不支持显示histogram的功能。
(注:Windows 7上的话JDK7里的VisualVM的VisualGC插件的内容可以在%User%/AppData/Roaming/.visualvm/7/modules/com-sun-tools-visualvm-modules-visualgc.jar 以及 %User%/AppData/Roaming/.visualvm/7/modules/ext/visualgc.jar 找到。
VisualGC插件自身没开源,所以就不能指望从visualvm.java.net那边找到它的源码了)
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16167以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10361先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22283(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21782之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ... -
oop、klass、handle的关系
2013-07-30 17:34 0oopDesc及其子类的实例 oop : oopDesc* ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
《深入理解Java虚拟机(第二版)》书评
2013-07-08 19:19 0值得推荐的中文Java虚拟机入门书 感谢作者赠与的样书,以下 ... -
豆列:从表到里学习JVM实现
2013-06-13 14:13 48151刚写了个学习JVM用的豆列跟大家分享。 豆列地址:http: ...
相关推荐
本文是Javascript统计学库jStat的中文参考手册。jStat是用Javascript编写的统计学库,它可以让你进行高级的统计操作而不需要专门的统计语言(如MATLAB或R)。
jstat命令手册.pdf
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx
jstat - Java Virtual Machine Statistics Monitoring Tool jstat官方介绍
java查看哪个进程频繁GC垃圾回收
jstat js正态分布函数库 var NormalDistribution = require('./jstat').NormalDistribution;
jmap jstat等命令介绍,如何监控tomcat内存使用情况的资料
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。 命令的格式如下: jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数] 注意:使用的jdk版本是jdk8. 二、垃圾回收统计 最常用,可以评估程序内存...
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc
Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat
jstat-1压缩包1111
jmap、jstack、jstat组合使用定位jvm问题
jstat用户监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行统计
jStat提供统计功能的本地javascript实现。 完整详细信息可在。 与大多数库相比,jStat提供的功能更多,包括weibull,cauchy,泊松,超几何和beta分布。 对于大多数分布,jStat提供pdf,cdf,反函数,均值,众数,...
jstat-示例 使用示例 实例图 机器学习 :线性回归 :非线性回归 :使用香草KNN算法进行分类 :具有多个线程的KNN分类 :使用KMeans进行聚类 :后勤分类 :使用正则化LassoRegularizer和RidgeRegularizer线性...
jstat.xlsx
前端项目-jstat,Statistical Library for JavaScript
它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。 jinfo:可以输出并修改运行时的java进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地...
本文档从实战角度出发,介绍jps、jmap、jstack和jstat这四个命令的常用方式。 jps 作用:获取java进程号,是后续命令的基础。 当一台服务器运行多个java进程时,该命令默认只输出进程号和应用名,可能无法区分哪个...
2. jstat:虚拟机统计信息监视工具 2 3. jinfo:java配置信息工具 3 4. jhat:虚拟机堆转储快照分析工具 3 5. jmap:内存映像工具 3 6. jstack:java堆栈跟踪工具 3 7. VisualVM:多合一故障处理工具 3 8. jconsole...