在正在运行的程序的两个步骤之间计算时间(可能以最短单位)的方式是什么?
例如 :
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();
然后减去对于纳秒级精度,请使用
nanoTime
。 nanoTime
与内部计时器以外的任何系统时钟都没有关系,因此在100 ns内,它可能从120到220,从100020到100120,等等,等等。