有时您的应用程序可能会遇到本文中讨论“java.lang.OutOfMemoryError: Metaspace”。在这种情况下,您可能希望查看 JVM 的元空间区域中加载的内容是什么。简而言之,JVM 内存中的 Metaspace 区域包含执行应用程序所需的类元数据定义。

如果您能够了解加载到内存中的类是什么,那么它将很好地了解 JVM 内存的 Metaspace 区域中存在哪些内容。在这篇文章中,让我们探索可用于查看加载到元空间中的类的选项。

以下是查看元空间中加载的类的选项:

  1. -verbose:class
  2. -Xlog:class+load
  3. jcmd GC.class_histogram
  4. 程序化方法
  5. 堆转储分析

1、-verbose:class

如果您在 Java 版本 8 或更低版本上运行,则可以使用此选项。当您在启动期间将“-verbose:class”选项传递给您的应用程序时,它将打印所有加载到内存中的类。加载的类将打印在标准错误流中(即控制台,如果您没有将错误流路由到日志文件)。

2、-Xlog:class+load

如果您在 Java 版本 9 或更高版本上运行,则可以使用此选项。当您在启动期间将“-Xlog:class+load”选项传递给您的应用程序时,它将打印所有加载到内存中的类。加载的类将打印在您配置的文件路径中。

** 3、jcmd GC.class_histogram**

JDK 包含一个名为“jcmd”的工具。您可以在 JVM 运行时调用此工具来检查元空间区域的内容。当您使用“GC.class_histogram”参数调用此工具时,它将打印加载到内存中的类列表。您可以在两种模式下调用此工具:

1、输出在控制台上加载的类

当您调用如上所示的“jcmd”时,它将在控制台中打印所有加载的类。这里 {pid} 是您的 java 应用程序的进程 ID。

2、输出在文件上加载的类

当您如上所示调用“jcmd”时,它将打印“文件名”参数中指定的文件路径中的所有加载类。这里 {pid} 是您的 java 应用程序的进程 ID。

4、程序化方法

您还可以使用编程方法打印加载到内存中的类。 开源 Guava 库

5.、转储分析

查看加载到内存中的类的另一个选项是检查堆转储。堆转储报告加载到内存中的所有数据、对象、类。您可以使用 此处给出的一种方法来捕获堆转储 。捕获堆转储后,您可以使用 Eclipse MAT 、 HeapHero等堆转储分析工具

查看Java元空间区域相关推荐

  1. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者

    R语言使用fs包的file_info函数查看文件元信息(属性信息).使用file_chmod函数修改文件的权限.使用file_chown函数修改文件的所有者 目录

  2. 如何查看java对象的大小

    有时需要查看java对象占用了多少内存(对象大小),lucene为我们提供了一个很好的工具类,操作简单,如下: int[] s = new int[1024];System.out.println(& ...

  3. 命令查看java的class字节码文件、verbose、synchronize、javac、javap

    查看Java字节码 1 javac –verbose查看运行类是加载了那些jar文件 HelloWorld演示: public class Test {public static void main( ...

  4. 3种骚操作,教你查看 Java 字节码!

    在我们工作.学习.以及研究 JVM 过程当中,不可避免的要查看 Java 字节码,通过查看字节码可以了解一个类的编译结果,也能通过编译器层面来分析一个类的性能. 字节码文件是不能直接打开的,下面栈长教 ...

  5. Idea如何方便的查看Java字节码文件,你是怎么做的

    ·校园的傍晚· 前言 作为一名Java开发人员,我想Java字节码文件是无论如何都会接触到的,也是要读懂的.面试或者是自己开始研究Java的一些底层原理,大都会遇上要字节码文件的时候. 接下里咱们一起 ...

  6. jps查看java进程以及pwdx通过pid查看进程所在位置

    jps -l  查看java进程,一般jdk都会自带jps 查到PID后,通过 pwdx ${PID} 查看路径,如 [root@hd208 console-api]# jps -l |grep da ...

  7. windows查看java进程详细信息的几种方法

    仅查看java任务列表 tasklist | findstr "java" 1.用arthas 下载arthas jar包 java -jar arthas-boot.jar 输入 ...

  8. java命令查看 java.io.tmpdir 参数值

    前言 jdk 1.8.0 查看 java.io.tmpdir 参数值 cmd> java -XshowSettings:properties -version 在该指令的结果中包含 java.i ...

  9. IDEA查看Java源码

    IDEA查看Java源码 有时我们需要查看Java源码,总是去查看Java文档可能太过麻烦,下面介绍两种方法来快速查看源码 方法一: Ctrl+Alt+B查阅源码 将光标移动到想要查看的函数或者接口, ...

最新文章

  1. Linux下升级安装Python-2.7.8版本
  2. RocketMQ集群特点
  3. 扩大VMware虚拟机中linux硬盘空间
  4. Adobe Edge Animate –获取鼠标位置及跟随鼠标功能实现
  5. Away3d学习笔记(1)
  6. 数千万智能手机集体脱机?罪魁祸首是……
  7. 【领域综述】NLP领域,你推荐哪些综述性的文章?
  8. 第五版fmea表格_FMEA第五版: 新版 DFMEA六步法解析
  9. java 数据库编程(一)JDBC连接Sql Server数据库
  10. 正常打游戏声音分贝测试软件,你们ps4玩游戏的时候噪音是多少分贝啊,我下了个测量噪音的软件,我的......
  11. QQ空间内容同步php网站,同步 Sablog 博客日志到 Qzone
  12. linux如何装输入法,如何在linux下安装智能拼音输入法
  13. 敏捷实践 | 如何正确使用故事点预估工作量?
  14. wow Warlock shushia PVP DZ
  15. Docker中成功安装修罗Xiunobbs论坛步骤
  16. matlab图像的错切变换,matlab 图像几何变换+答案
  17. 楼道灯人体红外感应电路(全波式)
  18. 【阿里云天池大赛赛题解析】 刷书笔记 Lesson 1 数据探索基础知识
  19. 伤感 html代码,让对方瞬间心酸的文案,伤感入体,痛彻心扉!
  20. IDEA代码规约插件灵狐安装

热门文章

  1. jmeter正则表达式提取器
  2. 国内可用的css,js,图标字体,等常用前端公共库CDN服务
  3. 华中科技大学省[you]选[ji]
  4. 华科 计算机学院 何琨,华中科技大学
  5. 需求工程之原型法获取需求
  6. word中使页眉不同的同时,页码相同 的问题解决
  7. CreateWindow 详解
  8. oracle日志如何查看,oracle如何查看日志
  9. border-radius没有效果
  10. Swift_代码混淆