继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

对java程序员来说时间格式永远让人挠头来看Java Date Time 教程-时间测量

程序零世界
关注TA
已关注
手记 22
粉丝 1
获赞 6

在Java中,用System.currentTimeMillis()来测量时间最方便。
你要做的是在某些操作之前获取到时间,然后在这些操作之后你想要测量时间,算出时间差。下面是一个例子:

long startTime = System.currentTimeMillis();
callOperationToTime();
long endTime   = System.currentTimeMillis();
long totalTime = endTime - startTime;

现在变量totalTime将包含执行callOperationToTime()方法所需要的全部时间。

反复操作

由于System.currentTimeMillis()没有返回精准的时间,所以不止一次地去执行测量操作是个不错的主意。也许10次、100次或者1000次,甚至更多。这样由于大粒度时间值(该值并不是每毫秒都在变化着)而导致的非精准时间将趋于平稳。
反复执行很多次测量操作的另一个很好的理由是,允许Java虚拟机去装载那些测量操作代码的classes,即时编译它,或许还能对它进行优化。

Timer类

前文所列出的计算方法是相当繁琐的并且沉闷,我们可以将它封装到一个Timer类中,下面是大概的例子:

public class Timer {

  private long startTime = 0;
  private long endTime   = 0;

  public void start(){
    this.startTime = System.currentTimeMillis();
  }

  public void end() {
    this.endTime   = System.currentTimeMillis();  
  }

  public long getStartTime() {
    return this.startTime;
  }

  public long getEndTime() {
    return this.endTime;
  }

  public long getTotalTime() {
    return this.endTime - this.startTime;
  }
}

下面是个如何使用Timer类的例子:

Timer timer = new Timer();
timer.start();
callOperationToTime();
timer.end();
long totalTime = timer.getTotalTime();
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP