可以参考这个文章 http://jiangnanguying.iteye.com/blog/539697
当然,java api里边这个包的说明更值得参考
/java/lang/management/package-summary.html
jdk bin下的 jconsole 和jvisualVm 这两个工具所实现的功能基本上都能够从这个包的类和方法里找到。
获取jvm 的 heapDump方法:
对于HotSpot虚拟机来说,可以利用rt.jar 里边的HotSpotDiagnosticMXBean 来获取
bean = ManagementFactory.newPlatformMXBeanProxy(server,
"com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class);
//注意此处的参数是 在目标虚拟机上的操作系统路径 ,而不是这个程序执行的操作系统的路径 特别是在取服务器上的时候,更要特别注意,同时也要注意权限等问题
bean.dumpHeap("a.hprof", true);
获取 ThreadDump方法:
ThreadMXBean threadBean = ManagementFactory.newPlatformMXBeanProxy(
mbs, ManagementFactory.THREAD_MXBEAN_NAME,
ThreadMXBean.class);
// ThreadMXBean bean =ManagementFactory.getThreadMXBean();
for (ThreadInfo info : threadBean.dumpAllThreads(true, true))
//然后...你懂的
获取GClog
在程序的启动参数中 配置
-verbose:gc -Xloggc:gc.log 当然 gc.log只是个文件名 你可以加上路径等等 呵呵。
另外发现
CodeCacheManager
java.lang:type=MemoryManager,name=CodeCacheManager
CodeCacheManager managed Code Cache
PS Scavenge
java.lang:type=GarbageCollector,name=PS Scavenge
PS Scavenge managed PS Eden Space
PS Scavenge managed PS Survivor Space
PS MarkSweep
java.lang:type=GarbageCollector,name=PS MarkSweep
PS MarkSweep managed PS Eden Space
PS MarkSweep managed PS Survivor Space
PS MarkSweep managed PS Old Gen
PS MarkSweep managed PS Perm Gen
居然PS MarkSweep 管理了 四个区域 呵呵 三个堆相关的 一个永久代 居然也是它负责..
附件是例子
分享到:
相关推荐
maven-resources-production java.lang.NegativeArraySizeException java.lang.NegativeArraySizeException 问题解决
java.lang.NoSuchFieldError: Companion 问题的解决方案
"Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...
idea启动项目报错 java.lang.NegativeArraySizeException解决方法
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
标题中的问题“scrcpy投屏 AssertionError: java.lang.reflect.InvocationTargetException”是用户在尝试使用Scrcpy时遇到的一个常见错误。这个错误通常意味着在执行某个方法时,Java运行时环境遇到了未预期的情况。...
标题 "java.lang.Exception: java.lang.IllegalArgumentException: firstMovedIndex, lastMove" 描述了一个Java编程中的异常情况。这个异常通常发生在尝试执行一个不合法的操作时,例如数组或集合操作超出了其边界。...
解决java.lang.NoClassDefFoundError这个问题,直接导入这几个包就解决了
Java编程语言的基础构建块之一是`java.lang`包,它被自动导入到每个Java程序中,无需显式导入。这个包包含了许多核心类和接口,是编写任何Java应用程序不可或缺的部分。`java.lang`包中最基本的类是`Object`,它是...
Java程序在运行过程中可能会遇到各种异常,其中"nested exception is java.lang.OutOfMemoryError: Java heap space"是一个常见的问题,通常发生在程序试图分配超过堆内存限制的空间时。这个错误表明Java虚拟机(JVM...
commons-lang3.3.1.jar、Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE....
java.lang.OutOfMemoryError处理错误 java.lang.OutOfMemoryError是Java虚拟机(JVM)中的一种常见错误,发生这种错误时,JVM将无法继续运行,程序将崩溃。这种错误的出现通常是由于Jvm的内存不足或内存泄露导致的...
在Java编程中,`java.lang.StackOverflowError` 是一个常见的运行时异常,它通常发生在程序执行过程中,当Java虚拟机(JVM)的调用栈溢出时。调用栈是每个线程用来存储方法调用信息的数据结构,当递归调用过深或者...
commons-lang3.3.1.jar、Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE....
Java中的`java.lang.UnsatisfiedLinkError`是一个常见的运行时异常,通常出现在Java试图加载本地(C或C++)库但找不到相应的库文件时。这个错误可能是由于多种原因引起的,如库路径设置不正确、库文件不存在或者版本...
解决 java.lang.NoSuchFieldError: STRING at org.jbpm.identity.hibernate.PermissionUserType. 不用jbpm的jbpm-identity.jar 用这个就好
在Java编程语言中,`java.lang.reflect`包是核心库的一部分,它提供了运行时访问类、接口、字段和方法的能力。这个包对于理解和操作对象的动态特性至关重要,尤其是在实现反射机制时。反射允许我们在程序运行期间...
解决 java.lang.RuntimeException: Could not generate DH keypair异常处理。 bcprov-ext-jdk15on-1.60、bcprov-jdk15on-1.60两个包放到jre下的$JAVA_HOME/jre/lib/ext的路径下,然后配置$JAVA_HOME/jre/lib/...