测量类中JVM指令的数量

时间:2015-03-25 00:12:13

标签: scala jvm measurement

我需要计算用于执行具有多个参数的方法的JVM指令的数量。我给该方法提供了各种参数来测量为每种情况执行的JVM指令的数量。

我可以使用哪些工具?源代码是用Scala编写的,但无论如何它都会产生类文件,所以任何JVM识别工具都可以正常工作。我在考虑分析器,但我认为分析器可能用于不同的目的。

1 个答案:

答案 0 :(得分:1)

在程序执行期间,有一个很好的工具可以理解Java HotSpot实时(JIT)编译器的行为 - JITWatch

警告:现代JVM过于复杂,并且进行各种优化,因此从性能的角度来看,JVM指令的数量并不意味着什么。如果您尝试测量一小段代码,那么在没有非常详细了解JVM正在做什么的情况下正确执行它是非常复杂的。请注意(http://shipilev.net/blog/2014/java-scala-divided-we-fail/)并自行承担使用风险:

  • 始终包括一个预热阶段,该阶段一直运行您的方法,足以在计时阶段之前触发所有初始化和编译。
  • 注意-client和-server,OSR和常规编译之间的区别。