首页 > 编程语言 > 详细

Java Cookbook-Date and Times

时间:2015-10-14 14:04:20      阅读:240      评论:0      收藏:0      [点我收藏+]

6.12 Measuring Elapsed Time

  --Problem

    You need to time how long long it takes to do something

  --Solution

    Call System.currentTimeMillis() twice,or System.nanoTime(),and subtract the first

    ressult from the second result

  --Discussion

    The System class contains two static methods for times.currentTimeMillis() return the current time (since 1970) in milliseconds,and nanoTime()

  (new in 1.5) returns the relative time in nanoseconds.To time some event use this:

 

 long start=System.currentTimeMillis();
  method_to_be_timed();

  long end=System.currentTimeMillis();

  long elapsed=end-start;//time in milliseconds

  or:

  long start=System.nanoTime();

  method_to_be_timed();

  long end=System.nanoTime();

  long elapsed=end-start;//time in nanoseconds

  Here is a short example to measure how long it takes a user to press return.

We divide the time in milliseconds by 1000 to get seconds

and print it nicely using a NumberFormat

  long t0,t1;

  System.out.println("Press return when ready");
  
  t1=System.currentTimeMillis();

  int b;

do{

  b=System.in.read();

}while(b!=‘\r‘&&b!=‘\n‘);

  t1=System.currrentTimeMillis();

  double deltaT=t1-t0;

  System.out.println(DecimalFormat.getInstance().format(deltaT/1000.)+"seconds.");

 

 import java.io.*;

 import java.text.*;



  /**

   * Timer for processing sqrt and I/O operations

   */

  public class TimerCompution{

    public static void man(String[] args){

      try{

        new Timer().run();
    }catch(IOException e){System.err.println(e);}
  } 

  public void run()throws IOException{

    DataInputStream n=new DataOutputStream(

      new BufferedOutputStream(new FileOutputStream(SysDep.getDevNull()));
      long t0,t1;
      System.out.println("Java Starts at "+(t0=System.currentTimeMillis()));

      double k;
      for(int i=0;i<100000;i++){

        k=2.1*Math.sqrt((dobule)i);
        n.writeDouble(k);
      }

     System.out.println("Java Ends at "+(t1=System.currentTimeMillis()));
     double deltaT=t1-t0;
     System.out.println("This run took "+
       DecimalFormat.getInstance().format(deltaT/1000.)+" seconds.");
 }   
}

  

Java Cookbook-Date and Times

原文:http://www.cnblogs.com/hephec/p/4877140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!