观察NIO的direct memory使用量?(JDK7)

前一篇:[url=http://rednaxelafx.iteye.com/blog/1098791]观察NIO的direct memory使用量?[/url]

前一篇说的是在当前的Oracle/Sun JDK6上没啥好办法去监视NIO的direct memory使用量。不过这个问题在JDK7里其实已经有解决的。从JDK7 build 36开始就有了吧。
解决的方式就是:给NIO也带上JMX的监控API。这才是正道啊! :lol:
从[url=http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/f097ca2434b1/src/share/classes/java/nio/Bits.java]JDK7版的java.nio.Bits[/url]源码里可以看到注册MXBean注册的代码。

相关的MXBean有以下两个:
1. objectName: java.nio:type=BufferPool,name=direct
2. objectName: java.nio:type=BufferPool,name=mapped
两个的接口都是[url=http://download.java.net/jdk7/docs/api/java/lang/management/BufferPoolMXBean.html]java.lang.management.BufferPoolMXBean[/url]。
(注:在[url=http://mail.openjdk.java.net/pipermail/compiler-dev/2011-March/003079.html]这个更新[/url]之前,该接口是叫做java.nio.BufferPoolMXBean。如果读到较老的JDK7介绍文看到包名不一样的话,java.lang.management这个才是正式版会使用的版本。)

用法参考上面链接里的JavaDoc就好。获取这两个MXBean的实例的办法也跟其它MXBean差不多:
List<BufferPoolMXBean> pools = ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class);


晒几张截图吧,[url=http://jdk7.java.net/download.html]JDK7 build 146[/url]里的JConsole:
[img]http://dl.iteye.com/upload/attachment/503457/bcfaecbc-d58b-3a8e-972d-cece0f894b1e.png[/img]

[img]http://dl.iteye.com/upload/attachment/503459/284ac12f-5c03-3064-9090-61ec64ca367e.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值