java内存快照的一系列问题

什么是内存快照?如何得到内存快照?如何分析内存快照?linux系统下!

3个回答

首先用ps -x找到你的进程号,用jmap -histo 进程号来打印输出目前堆里面的对象情况,太多就grep一下自己的业务类,分析一下哪个类的
实例数量超过你的预期,不过这个命令貌似有个缺点,在老区的可回收待回收的对象也会被统计进去,所以执行命令前最好触发一下full gc,
再详细点就用jmap -dump命令弄个文件出来,eclipse有插件可以打开查看,里面可以区分哪些是会被回收的哪些是堆里拿着的,
再不行就自己做个端口服务socket或者http之类的,自己连过去把目前的内存里的对象信息拿过来,前提是你对内存里面的对象管理能支持

jdk提供了Java虚拟机内存使用分析工具,jhat命令与jmap搭配使用,来分析jmap生成的堆转储快照。jstack是Java堆栈跟踪工具,jmap命令就是生成堆转储快照的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐