jdk自带jmap查看Tomcat内存里类的情况出错

miss564335 2014-08-28 02:33:19
很奇怪, 项目的老年代的内存很大,就算满了,也是会释放一点点.所以想分析一下情况.首先,JDK和JRE的版本肯定一直的,-version看过了
然后一开始想最好能够生产heapdump文件.命令jmap -F -dump:format=b,file=d:\temp.hprof 7644
但是报错
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.tools.jmap.JMap.runTool(JMap.java:179)
at sun.tools.jmap.JMap.main(JMap.java:110)
Caused by: sun.jvm.hotspot.debugger.DebuggerException: Windbg Error: ReadVirtual failed!
at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess0(Native Method)
at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess(WindbgDebuggerLocal.java:485)
at sun.jvm.hotspot.debugger.DebuggerBase$Fetcher.fetchPage(DebuggerBase.java:76)

然后无耐,折中看内存类的构成 .命令 jmap -F -histo 7644.继续报错(报错内容一样)
Debugger attached successfully.
Server compiler detected.
JVM version is 20.6-b01
Iterating over heap. This may take a while...
Finding object size using Printezis bits and skipping over...
Exception in thread "main" java.lang.reflect.InvocationTargetException

但是我用jmap -heap 7644 查看heap是没有问题的.能够得到内存的使用情况信息.

所以请问有谁能够帮忙解决一下. 分数不多,请见谅
...全文
2128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
miss564335 2014-09-04
  • 打赏
  • 举报
回复
对 WinDbg 不熟悉, 我试过安装 了AMD64的WinDbg 然后还是不会用~~ 或者换个说法. 我现在想导出Tomcat的heapdump 文件去分析, 除了jmap 还有什么工具能够比较方便地实现? 因为我那个是 真实使用环境, 不太想用jprofiler而且也不好用.....
huasuoworld 2014-09-03
  • 打赏
  • 举报
回复
jmap调用windows WinDbg查看进程信息过程中出错了,可能jdk与windos操作系统的版本导致的,你可以尝试直接用windos WinDbg查看进程信息。
miss564335 2014-09-03
  • 打赏
  • 举报
回复
JDK的Version "C:\Program Files\Java\jdk1.6.0_31\bin\java" -version java version "1.6.0_31" Java(TM) SE Runtime Environment (build 1.6.0_31-b05) Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) JRE的Version "E:\jre6_x64\bin\java" -version java version "1.6.0_31" Java(TM) SE Runtime Environment (build 1.6.0_31-b05) Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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