码迷,mamicode.com
首页 > 编程语言 > 详细

Java Cookbook-Date and Times

时间:2015-10-14 14:05:22      阅读:161      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!