代码之家  ›  专栏  ›  技术社区  ›  Ogre Psalm33

如何在Java中计时方法的执行?

  •  715
  • Ogre Psalm33  · 技术社区  · 17 年前
    1. 如何获取方法的执行时间?
    2. 有没有 Timer 实用程序类,用于计时任务需要多长时间等?

    谷歌上的大多数搜索都会返回调度线程和任务的计时器的结果,这不是我想要的。

    37 回复  |  直到 6 年前
        1
  •  4
  •   Bhaskara Arani    6 年前

    总是有一种老式的方式:

    long startTime = System.nanoTime();
    methodToTime();
    long endTime = System.nanoTime();
    
    long duration = (endTime - startTime);  //divide by 1000000 to get milliseconds.
    
        2
  •  4
  •   dave    5 年前

    我同意这个简单的答案。对我有用。

    long startTime = System.currentTimeMillis();
    
    doReallyLongThing();
    
    long endTime = System.currentTimeMillis();
    
    System.out.println("That took " + (endTime - startTime) + " milliseconds");
    

    它工作得很好。分辨率显然只有毫秒,使用System.nanoTime()可以做得更好。这两种方法都有一些限制(操作系统时间表切片等),但效果很好。

    平均跑几次(越多越好),你就会得到一个不错的主意。