监控一个运行着的程序,里面有个java对象,如何实时查看该对象的内存变化情况

huangzebiao007 2013-07-12 03:03:07
Player play = new Player();
Player play2 = new Player();
while(true){
play.playGames();
play2.playGames();
}

如何查看play对象和play2对象运行2个小时中的内存情况,峰值什么的,有什么简单易使用的工具请介绍下,或者有什么办法也请说下
...全文
336 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdmclndsy 2013-10-11
  • 打赏
  • 举报
回复
btrace这个工具也不错,jconsole,jvisualvm这两个虽说好用,但总归是少点什么
无聊找乐 2013-07-12
  • 打赏
  • 举报
回复
jprofiler挺好用的,你可以试试
MiceRice 2013-07-12
  • 打赏
  • 举报
回复
貌似也是个世界级难题。。。 你会发现查出来内存占用最大的都是 byte[] 或者 char[] 这类,因为工具不会根据对象包含关系来做累计运算的。 所以,如果该对象结构如果比较简单的话,想探知其内存占用,可以将其直接进行对象序列化,那么大致可以知道其内存占用大小。不过如果对象复杂,甚至涉及外设资源啥的,就没啥解了。
huangzebiao007 2013-07-12
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
JDK自带的jconsole.exe或jvisualvm.exe
jconsole.exe这工具我用了,但只是能监控外围的类,像上面我写的代码是放在Test类中,只能监测Test,Test里面包含的Player类就不知怎么监控了
oh_Maxy 2013-07-12
  • 打赏
  • 举报
回复
JDK自带的jconsole.exe或jvisualvm.exe

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧