计算2个语句之间的执行时间差

Suh*_*pta 1 java time

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

例如 :

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

  difference = time_2 - time_1;
}
Run Code Online (Sandbox Code Playgroud)

我一直在计算使用new GregorianCalendar().getTimeInMillis().但我得到的差异是0.

有什么方法可以让我知道任何算法中某些步骤之间的区别吗?在这里,我想知道算法的第一步和最后一步之间的区别.就在算法最终返回之前.

ζ--*_*ζ-- 9

对于毫秒,请使用:System.currentTimeMillis()而不是:

long time_1 = System.currentTimeMillis();
.
.
.
 long time_2 = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

并减去.对于纳秒级精度,请使用nanoTime.nanoTime与内部定时器以外的任何系统时钟无关,因此对于100 ns,它可以从120到220,100020到100120等等.