1、JVM启动参数
垃圾回收器调用情况参数,使用如下参数可以看到程序何时启动GC进行垃圾回收,和垃圾回收的详细信息。
java Test -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
相关文章:http://hi.baidu.com/lovemywolf/item/c18bc98655bc1d1dc2162764
http://hi.baidu.com/576699909/item/9daf4d7c33a09f316f29f66c
内存快照文件,使用下面的参数当程序出现MemoryError时会将内存快照保存在文件中。然后可以通过IBM HeapAnalyzer、jhat(Java Head Analyse Tool )、 Eclipse Memory Analyzer等工具分析内存中堆的情况。
java Test -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:dump.hprof
来设置应用向OS直接申请的最大内存数
-XX:MaxDirectMemorySize=
2、内存分析工具
JConsole
JDK自带的工具,在JDK的BIN目录中就可以找到。很方便的可以分析内存、CPU、线程等内存情况,可以将内存快照保存到文件中。
IBM的堆分析工具,IBM的强大不是没有理由的,这个工具用起来还是不错的。这次用这个工具很快到就找到问题在哪儿了。