我想我需要设置一些分析器,或以某种方式配置类加载器来保存这些信息。这就是我需要的: 当JVM运行时,我需要执行一个跟踪类加载器正在加载的java文件的进程。遍及所有线程(还有进程,但那是另一个JVM)。
所以在输出中我需要知道使用哪个类的次数。
您能为这些提供一些工具和配置示例吗?最好是命令行工具&免费。
答案 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