在正在运行的程序的两个步骤之间计算时间(可能以最短单位)的方式是什么?

例如 :

algo() {
  long time_1 = time_X
  .
  .
  .
  long time_2 = time_Y

  difference = time_2 - time_1;
}


我一直在使用new GregorianCalendar().getTimeInMillis()进行计算。但是我得到的区别是0

我有什么办法可以知道任何算法中某些步骤之间的区别?在这里,我想知道算法第一步和最后一步之间的区别。在算法即将做出最终回报之前。

最佳答案

如果使用毫秒,请使用:System.currentTimeMillis()代替:

long time_1 = System.currentTimeMillis();
.
.
.
 long time_2 = System.currentTimeMillis();


然后减去对于纳秒级精度,请使用nanoTimenanoTime与内部计时器以外的任何系统时钟都没有关系,因此在100 ns内,它可能从120到220,从100020到100120,等等,等等。

09-10 07:19
查看更多