盛世彩票-内存分析 - 如何获取Java堆转储?

在本文中,我们将看到如何获得Java堆转储来解决盛世彩票网内存泄漏和内存使用率高等内存问题。有不同的选项可用于获取堆转储。这些选项将根据JVM供应商而有所不同。在本文中,我使用了Oracle JDK8。

在这种方法中,当应用程序抛出“ OutOfMemoryError ” 时,我们必须传递下面的JVM参数来获得堆转储JVM在指定的文件路径中生成Heap Dump文件。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path to this heap dump file>

如果您尚未指定HeapDumpPath,则JVM会生成运行JAVA进程的文件盛世彩票网。转储文件的名称将类似于  java_pid.hprof

有时候我们可能需要基于需求的堆转储。例如,在高峰负载期间,应用程序可能会变得更慢,并且内存消耗可能会更多。为了排除内存消耗,我们需要堆转储。

从JDK6开始,我们使用 工具来根据需求生成Heap Dump。jmap会将二进制HPROF格式的Java堆转储为指定的文件。指令如下。

jmap -dump:format=b,file=<file_name> <pid>
For example, jmap -dump:format=b,file=heap_dump.hprof 4988

在上面的例子中,4988是获取堆转储的java进程ID。我们可以通过使用来获取进程ID,

还有另一个名为 GUI实用程序jconsole可以连接到本地java进程或远程java进程。通过使用MBean,我们可以获得堆转储。

我们可以使用GUI工具来连接本地或远程JAVA进程。通过jvisualvm我们也可以生成堆转储。

上述所有工具都是JDK的一部分。设置JAVA_HOME和PATH环境变量以盛世彩票网访问这些工具。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.hyedu.net/a/shengshicaipiao/18.html