监控一个运行着的程序,里面有个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挺好用的,你可以试试