当前位置: 代码迷 >> J2SE >> 监控一个运行着的程序,里面有个java对象,怎么实时查看该对象的内存变化情况
  详细解决方案

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

热度:54   发布时间:2016-04-23 22:01:47.0
监控一个运行着的程序,里面有个java对象,如何实时查看该对象的内存变化情况
Player play = new Player();
Player play2 = new Player();
while(true){
    play.playGames();
    play2.playGames();
}

如何查看play对象和play2对象运行2个小时中的内存情况,峰值什么的,有什么简单易使用的工具请介绍下,或者有什么办法也请说下

------解决方案--------------------
JDK自带的jconsole.exe或jvisualvm.exe
------解决方案--------------------
貌似也是个世界级难题。。。

你会发现查出来内存占用最大的都是 byte[] 或者 char[] 这类,因为工具不会根据对象包含关系来做累计运算的。

所以,如果该对象结构如果比较简单的话,想探知其内存占用,可以将其直接进行对象序列化,那么大致可以知道其内存占用大小。不过如果对象复杂,甚至涉及外设资源啥的,就没啥解了。
------解决方案--------------------
jprofiler挺好用的,你可以试试
  相关解决方案