1

我需要在应用程序的内存使用高峰时创建内存快照 - 有没有简单的方法来实现这一点?

谢谢

4

3 回答 3

0

使用 VisualVM/JConsole 监控应用程序。当你看到峰值时,做一个堆转储。

另一种方法是(如果您不想监视)将 Xmx 减少到您确定它会抛出内存不足异常的东西。并激活标志 -XX:+HeapDumpOnOutOfMemoryError

于 2010-03-13T20:57:20.003 回答
0

呃?除非您可以量化地说明该峰值何时出现,否则您希望如何实施?如果每个时间点都可能是您要保存的一个状态,并且无法提前知道,则必须为所有点保存完整的快照。听起来很难。

于 2010-03-12T13:16:10.013 回答
0

JVisualVM 的替代方法是获取 native_stderr.log 并在IBM 的 Pattern Modeling and Analysis Tool for Java Garbage中打开它。您将能够快速查看应用程序使用堆空间的最高点。

于 2010-03-12T13:38:30.847 回答