在 JVM 上测量算法执行时间



有没有办法精确测量用Java编写的算法的执行时间?我的任务是设计一种解决TSP的算法,C++使用推荐语言。但是,如果我想用 Java 编写它,我必须证明测量的时间实际上是算法执行时间,而不是 JVM 在运行算法时可能执行的任何操作所花费的时间。

在执行算法之前和之后使用 System.nanoTime(( 应该就足够了,或者我可以做更多的事情吗?

简单的方法:

执行此操作的最快和最简单的方法是使用以下方法:

long startTime = System.nanoTime();
Algorithm();
long endTime = System.nanoTime();
long duration = (endTime - startTime);  //divide by 1000000 to get milliseconds.

如果您正在寻找不同的方法,请参阅此处,如何在 Java 中计时方法的执行时间?

微观基准方法:

使用以下链接获取有关如何在Java和JVM中正确制作微基准测试的指南: 如何在 Java 中编写正确的微基准测试?