我正在调用方法之前读取系统时间,并在方法返回后立即读取时间差,这将给出执行方法所花费的时间.
代码段
long start = System.currentTimeMillis ();
method ();
long end = System.currentTimeMillis ();
System.out.println ("Time taken for execution is " + (end - start));
Run Code Online (Sandbox Code Playgroud)
奇怪的是输出是0......这是可能的..?
它可能比相当粗粒度的系统时钟花费更短的时间.(例如,您可能会发现System.currentTimeMillis()每10或15毫秒只会更改一次.)
System.currentTimeMillis有助于找出当前时间,但它不足以测量短时间.相反,您应该使用System.nanoTime()哪个使用高分辨率计时器.nanoTime()是不适合用于查找当前时间-但它是专为测量持续时间.
可以把它想象成挂钟和秒表之间的区别.
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |