【发布时间】:2010-03-12 13:12:00
【问题描述】:
我需要在应用程序的内存使用高峰期进行内存快照 - 有没有简单的方法来实现这一点?
谢谢
【问题讨论】:
我需要在应用程序的内存使用高峰期进行内存快照 - 有没有简单的方法来实现这一点?
谢谢
【问题讨论】:
嗯?除非您可以量化地说 何时 出现峰值,否则您希望如何实现?如果每个时间点都可能是您要保存的一个状态,并且无法提前知道,则必须为所有点保存完整的快照。听起来很难。
【讨论】:
JVisualVM 的替代方法是获取您的 native_stderr.log 并在 IBM's Pattern Modeling and Analysis Tool for Java Garbage 中打开它。您将能够快速查看应用程序使用堆空间的最高点。
【讨论】:
使用 VisualVM/JConsole 监控应用程序。当你看到峰值时做一个堆转储。
另一种方法是(如果您不想监视)将 Xmx 减少到您肯定会抛出内存不足异常的东西。并激活标志 -XX:+HeapDumpOnOutOfMemoryError
【讨论】: