我有一个使用以下标志运行的生产服务器:- XX:+HeapDumpOnOutOfMemoryError
昨晚,当我们的服务器遇到堆错误时,它生成了一个 java-38942.hprof 文件。事实证明,系统的开发人员知道该标志,但无法从中获取任何有用的信息。
有任何想法吗?
如果您想要一个相当先进的工具来进行一些认真的探索,请查看Eclipse的 Memory Analyzer 项目,该项目由 SAP 提供。
您可以做的一些事情对于查找内存泄漏等非常有用 - 包括针对内存中的对象运行一种受限 SQL (OQL) 形式,即
从 com.yourcompany.somepackage.User 中选择 toString(firstName)
完全辉煌。