1

我有一个应用程序运行相当长的分析(大量的数字运算),因此运行一次应用程序大约需要 3-4 小时,充分利用所有核心。现在我很确定我的代码不是防水的,所以我想分析并寻找潜在的弱点。

我已经阅读了很多关于 jvisualvm 的文章,并且也玩过它。然而,它似乎选择了 cpu 或内存分析,而Javalobby 的这篇文章有一个有趣的引述,作者说:

我意识到 CPU 和内存分析可以同时完成,但出于本文的目的,我想将它们分开。

谁能否认或证实这一点?如果这是可能的,那将非常有用,所以我不会一遍又一遍地以不同的模式进行分析。如果不可能,是否可以排队进行不同的分析分析,以便我可以在一夜之间运行它们?

谢谢,

4

2 回答 2

2

不可能同时进行 CPU 和内存分析,但您可以非常轻松地在 CPU 和内存之间切换,尤其是在使用“采样器”选项卡时。对于您的情况,我将从简单的监控开始。查看图表,您应该能够判断是否有内存问题。如果您有内存问题,我会先尝试修复它,然后将您的注意力转移到 CPU 分析上。

于 2011-04-05T18:53:44.193 回答
0

我发现分析器往往会低估对象分配的成本,因此我通常使用 cpu 分析启用内存分析,因为我觉得这会提供更真实的 CPU 分析结果。(即使我不看内存分析报告)

如果有疑问,我建议您运行 CPU 配置文件,无论有没有内存配置文件,您都会得到非常不同的结果。以我的经验,这两个结果都值得优化。;)

顺便说一句:我使用 YourKit,但我不认为 VisualVM 在这方面会有很大不同。

于 2011-04-05T08:43:02.347 回答