Java和C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人想出来。
给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照等。
JDK的命令行工具
基于Windows平台下的JDK 1.6 Update 21.
1. jps(JVM Process Status Tool):虚拟机进程状况工具
列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。
2. jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具
用于监视虚拟机各种运行状态信息。可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
3. jinfo(Configuration Info for Java):Java配置信息工具
实时查看和调整虚拟机各项参数。
4. jmap(Memory Map for Java):Java内存映像工具
生成堆转储快照(一般称为heapdump或dump文件)。
jmap的作用不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息