测量类中JVM指令的数量



我需要计算JVM指令的数量,以便执行具有多个参数的方法。我为该方法提供了各种参数,以衡量每种情况下执行的JVM指令的数量。

我可以使用什么工具?源代码是用Scala编写的,但它无论如何都会生成类文件,所以任何JVM感知工具都可以正常工作。我在考虑profiler,但我认为profiler可能用于不同的目的。

有一个很好的工具可以了解Java HotSpot实时(JIT)编译器在程序执行过程中的行为-JITWatch。

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

  • 始终包括一个预热阶段,该阶段始终运行您的方法,足以在计时阶段之前触发所有初始化和编译
  • 请注意客户端和服务器、OSR和常规编译之间的区别

最新更新