【发布时间】:2013-06-27 03:09:57
【问题描述】:
我运行了一个 jvm 进程,有一天它遇到了内存不足的异常。在日志中我发现了很多内存不足的错误::
-bash-3.00# grep OutOfMemoryError AdminServer.log00399 java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space ####<2013-6-28 05:09:27 pm CST> <Error> <Server> <kfmsapp2> <AdminServer> <DynamicListenThread[Default[3]]> <<WLS Kernel>> <> <>
它还生成了一个heapdump文件,我用mat分析后发现是一个线程中的一个大对象,我只知道它是一个hibernate公共对象org.hibernate.engine.PersistenceContext,但我不知道它来自哪里。
我想写一个小程序,当出现内存不足的错误时,它会自动生成一个threaddump文件。
我的问题是:程序执行的时间最好准确地进行线程转储?是在日志文件中出现的第一个内存不足错误吗?
【问题讨论】:
标签: java out-of-memory heap-dump