监视不同java对象的内存消耗

时间:2009-09-17 10:34:37

标签: java memory-management

如果我们在一个应用程序中有300个类,是否可以监视我们在给定时间内每个类的实例数?是否有可能知道每个实例消耗了多少内存?

由于

6 个答案:

答案 0 :(得分:3)

JDK 1.6包含一个名为jvisualvm的工具,它允许您查看有关正在运行的Java程序的大量信息,包括内存使用情况,线程等。您还可以使用分析器查看此类信息。 NetBeans中的探查器看起来很像JVisualVM。

答案 1 :(得分:2)

我个人喜欢Yourkit。它有一个非常好的用户界面,并提供30天的试用期。细节也很广泛。

该网站中的online help document应该可以帮助您设置如何运行它。

答案 2 :(得分:1)

使用profiler4jpmd

个人我喜欢profiler4J的易用性和simple graphics:)

答案 3 :(得分:0)

使用jvisualvm.exe它是JDK6的一部分

答案 4 :(得分:0)

您可以使用Java分析器,具体取决于您要部署到哪个Web容器(如果它是Web应用程序),您可以尝试很多不同的分析器:http://java-source.net/open-source/profilers

答案 5 :(得分:0)

大多数个人资料都会为您提供此信息。我个人对JProfiler很熟悉,但我希望任何有价值的探查器都可以让你这样做。

对于更低技术的解决方案,您甚至可以从应用程序触发堆转储,然后使用像jhat这样的应用程序查看它。尽管如此,界面仍然有很多不足之处,并且在任何非平凡的情况下使用分析器都会更加舒适。

修改:here是JProfiler的内存屏幕示例,您还可以调查reference chain