如何计算在Java应用程序的运行时中使用哪个类的次数

时间:2011-12-16 16:02:33

标签: java class count profiling classloader

我想我需要设置一些分析器,或以某种方式配置类加载器来保存这些信息。这就是我需要的: 当JVM运行时,我需要执行一个跟踪类加载器正在加载的java文件的进程。遍及所有线程(还有进程,但那是另一个JVM)。

所以在输出中我需要知道使用哪个类的次数。

您能为这些提供一些工具和配置示例吗?最好是命令行工具&免费。

3 个答案:

答案 0 :(得分:2)

您应该使用Java Profiler。一些开源选项是here

答案 1 :(得分:1)

Profilers肯定会为您提供这些信息,但您需要在分析时运行JVM,因为这会产生性能成本。

如果您计划从生产系统按需收集此信息,您可能需要使用JMX检测您感兴趣的类/包。然后,您可以使用HP OpenView或Nagios之类的东西来监控值。 http://www.ibm.com/developerworks/java/library/j-jtp09196/index.html讨论如何开始使用JMX。也许JVM已经收集了一些这些东西,我不知道。

JMX方法的缺点是您必须事先知道要收集的内容并适当地检测目标类。

答案 2 :(得分:0)

如果您只需要查看加载了哪些类,则可以使用

运行
java -verbose:class com.your.Class