java.lang.manament API 简介

java.lang.management 包提供管理接口用于监控以及管理 JVM 以及 Java 运行时的其他组件。我们开发的 JVM Agent 就是通过这个包提供的接口,收集到 JVM 中包括内存、GC、线程在内的信息。java.lang.management 包提供了以下的接口:

  • BufferPoolMXBean:bufferPool 管理接口,例如:直接缓冲池、映射缓冲池
  • ClassLoadingMXBean:JVM 的类加载系统管理接口
  • CompilationMXBean:JVM 编译系统管理接口
  • GarbageCollectionMXBean:JVM GC 管理接口,提供不同垃圾回收器的回收次数和耗时信息
  • MemoryManagerMXBean:内存管理器接口,内存管理器负责管理各个分区的内存,包括了我们常说的垃圾回收器
  • MemoryMXBean:JVM 内存系统管理接口,提供获取堆内存以及非堆内存信息
  • MemoryPoolMXBean:内存池管理接口,内存池也就是我们常说的 Java 内存分代分区,如:新生代、老年代、永生代等等
  • OperatingSystemMXBean:提供 JVM 所运行的操作系统信息
  • RuntimeMXBean:提供 JVM 运行时系统信息
  • ThreadMXBean:JVM 线程管理接口,提供 JVM 线程的相关信息

各个 MXBean 提供的具体数据获取接口,可以查看官方文档进一步了解。

下面以 MemoryMXBean 为例,其提供了主要接口获取内存信息:

  • MemoryUsage getHeapMemoryUsage()
  • MemoryUsage getNonHeapMemoryUsage()

上面两个接口将返回当前堆或非堆的内存使用信息,这些信息封装在 MemoryUsage 对象中。MemoryUsage 对象提供了内存的四个属性,分别是:init、used、committed、max,表示当前堆或非堆内存的:初始化内存大小,已使用内存大小,已提交内存大小,最大内存大小,单位为字节数。

通过以上的属性,我们就可以清晰的了解到内存的详细使用情况,对于 JVM 的其他监控指标同理。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值