如何查找java类使用的内存?

问题描述:

我使用的是Ubuntu 14.04。有什么方法可以找到java类或进程使用了​​多少堆?如何查找java类使用的内存?

当我运行顶部命令时,%CPU和%MEM表示什么?

top的输出为您提供单个Java虚拟机的CPU和内存使用情况。 Java程序中的并发通常使用线程来实现,即在单个Java虚拟机中有很多线程。要获得有关特定线程或Java程序其他组件的内存使用情况的更多信息,您必须查看虚拟机,例如通过捕获堆转储并使用MAT进行分析。 MAT和其他工具也在How do I analyze a .hprof file?中解释。另一种可能性应该是将VisualVM附加到Java虚拟机,但我从未使用过它。

您可以使用包含在JDK中的jvisualvm。

$YOUR_JAVA_HOME/bin/jvisualvm. 

在探查器,您可以选择CPU或内存分析应该 显示你想要的东西。您可以在这里找到一些文档: