我正在使用一些操作解析文件,我想测量执行这些操作所需的时间。
最好的方法是打印时间?
答案 0 :(得分:5)
更新:如果您不反对使用外部库而且您使用的是JDK 5+,则Google Guava的Stopwatch使用System.nanoTime()
。它与绝对系统或挂钟时间无关,而只在计算经过时间时才有用,但这正是您想要的。
否则,您可以使用System.currentTimeMillis()
作为长整数返回当前系统时间(以毫秒为单位)。
long start = System.currentTimeMillis();
// ... perform operations ...
long time = System.currentTimeMillis() - start;
System.out.println("Operation took " + time + "ms");
定时短期操作可能非常棘手,尤其是当您在循环中运行它们以在多次运行中分摊它时。您正处于操作系统任务调度程序和Java内部线程调度程序的一时兴起。
要缓解这些问题,请平均多次运行的时间,并尽可能将控制台输出操作移出计时。请记住,你不会得到确切的数字。
答案 1 :(得分:1)
这是您通常测量执行时间的方式:
long start = System.currentTimeMillis();
//perform action
System.out.println("It took " + (System.currentTimeMillis() - start) + "ms");
答案 2 :(得分:1)
long start=System.currentTimeMillis();
//your action code
long end=System.currentTimeMillis();
int durationInMillis=end-start;
答案 3 :(得分:1)
不确定您的操作是什么意思,但如果您想查看一段代码需要多长时间:
long start = System.nanoTime();
//Your code here
long timeElapsed = System.nanoTime() - start;
System.out.println(timeElapsed);
这将打印纳秒数
答案 4 :(得分:1)
我会使用我的IDE的探查器或jvisualvm
。