如果我们在一个应用程序中有300个类,是否可以监视我们在给定时间内每个类的实例数?是否有可能知道每个实例消耗了多少内存?
由于
答案 0 :(得分:3)
JDK 1.6包含一个名为jvisualvm的工具,它允许您查看有关正在运行的Java程序的大量信息,包括内存使用情况,线程等。您还可以使用分析器查看此类信息。 NetBeans中的探查器看起来很像JVisualVM。
答案 1 :(得分:2)
我个人喜欢Yourkit。它有一个非常好的用户界面,并提供30天的试用期。细节也很广泛。
该网站中的online help document应该可以帮助您设置如何运行它。
答案 2 :(得分:1)
答案 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。