Java currentTimeMillis()使用了几次问题

时间:2019-02-25 04:50:13

标签: java function execution-time

我正在创建一个程序,每次转到某个函数时,它都会获取该函数的执行时间,但是问题在于,一旦进入第一个函数,下一个函数将获得0或1 ms的执行时间:

function1: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function1 took: " + (end - start) + "ms"); 

function2: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function2 took: " + (end - start) + "ms"); 

function3: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function3 took: " + (end - start) + "ms"); 

输出为:

function1花费了49ms

function2花费了1ms

function3耗时:0ms

如您所见,在执行第一个功能之后,似乎对于以下函数而言,时间计算不正确。 希望你能回答我的疑问。

1 个答案:

答案 0 :(得分:0)

尽管这取决于您的方法和实现,但我认为ms不够准确,无法给您足够的时间。

您可以使用链接How do I time a method's execution in Java?获得更准确的时间。

此外,您可以将每个方法放在一个单独的线程中,并在它们独立时并发运行,以便在总体执行中获得更好的时间。