在开发的过程中,我们有时候会遇到Java outofmemoy的错误发生,很多时候会让我们自己搞得也头雾水,完全不知如何下手,其实jdk本身就已经备有相应的工具给我们开发者使用来,也可以使用其他的第三方工具或插件来帮助我们解决问题。
jdk带有的jconsole,可以用来观察jvm中各种性能指标参数。
jdk5/jdk6中的jmap,是一个很好的用来heap dump机器的内存快照。
加上参数:-XX:-HeapDumpOnOutOfMemoryError ,当程序运行时,如有失败的情况,自动生成heap dump.
或者 还可以 使用 配置 JVM 参数: -XX:+HeapDumpOnCtrlBreak,在linux下面可以直接使用快捷键ctr+break来生成heap dump。
一般dump后生成的文件格式是hprof格式。
最后用MAT工具打开,MAT还是比较好用的,属于eclipse的一种插件,通过使用这些工具分析问题产生的原因。
以上纯属个人的一些体会,有好的方法和工具,欢迎回帖交流。