我有一个java应用程序,它的内存在几天之后开始跳跃和下降 是否有工具可以在运行/调试期间实时显示变量/成员大小?
用eclipce调试它是不可能的。
答案 0 :(得分:4)
查看jhat和jmap。
从长远来看,请考虑在您的应用中添加一个监视器(使用JMX,或编写自己的监视器)。它可能在将来的许多情况下对你有帮助。
答案 1 :(得分:3)
安装:http://visualvm.java.net/eclipse-launcher.html然后使用Eclipse启动。这不使用调试器,而是启动VisualVM应用程序,它允许您监视应用程序。您需要进入Run Configurations ..设置进行设置,然后选择底部的VisualVM启动器(选择其他... - > VisualVM启动器)。您还需要进入“首选项”以设置VisualVM的位置。
(在以后的Eclipse版本中,将其放入drops文件夹中,解压缩)。
答案 2 :(得分:2)
如果您正在使用> JDK6并且可以访问该计算机,那么jvisualvm.exe可能会工作,这是JDK的一部分(在bin目录中)
答案 3 :(得分:1)
yourkit(http://www.yourkit.com/)可以做到这一点,但预计应用程序的性能会大幅下降,因为它必须跟踪每个对象的大小。
我认为如果您使用一些侵入性较小的选项运行您的套件会更好,然后您可以拍摄内存使用情况的快照。
我忘了添加,使用yourkit你可以运行应用程序而几乎没有任何工具(这会稍微降低应用程序的性能),当问题开始出现问题时,你可以在应用程序启用时进行更重量级的分析运行