Java Tutorial/Apache Common/StopWatch

Материал из Java эксперт
Перейти к: навигация, поиск

StopWatch

/* 
 * ========================================================================
 * 
 * Copyright 2005 Tim O"Brien.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * ========================================================================
 */
import java.text.NumberFormat;
import org.apache.rumons.lang.time.StopWatch;
public class MainClass {
  public static void main(String[] args) {
    StopWatch clock = new StopWatch();
    NumberFormat format = NumberFormat.getInstance();
    
    System.out.println( "How long does it take to take the sin of 0.34 ten million times?" );
    clock.start();
    for( int i = 0; i < 100000000; i++ ) {
      Math.sin( 0.34 );
    }
    clock.stop();
    System.out.println( "It takes " + clock.getTime() +
                    " milliseconds" );
    System.out.println( "How long does it take to multiply 2 doubles one billion times?" );
    clock.reset();
    clock.start();
    for( int i = 0; i < 1000000000; i++) {
      double result = 3423.2234 * 23e-4;
    }
    clock.stop();
    System.out.println( "It takes " + clock.getTime() + " milliseconds." );
    System.out.println( "How long does it take to add 2 ints one billion times?" );
    clock.reset();
    clock.start();
    for( int i = 0; i < 1000000000; i++) {
      int result = 293842923 + 33382922;
    }
    clock.stop();
    System.out.println( "It takes " + clock.getTime() + " milliseconds." );
    
    System.out.println( "Testing the split() method." );
    clock.reset();
    clock.start();
    try { Thread.sleep(1000); } catch( Exception e ) {}
    clock.split();
    System.out.println( "Split Time after 1 sec: " + clock.getTime() );
    try { Thread.sleep(1000); } catch( Exception e ) {}
    System.out.println( "Split Time after 2 sec: " + clock.getTime() );
    clock.unsplit();
    try { Thread.sleep(1000); } catch( Exception e ) {}
    System.out.println( "Time after 3 sec: " + clock.getTime() );
    
  }
}



How long does it take to take the sin of 0.34 ten million times?
It takes 5766 milliseconds
How long does it take to multiply 2 doubles one billion times?
It takes 2734 milliseconds.
How long does it take to add 2 ints one billion times?
It takes 2703 milliseconds.
Testing the split() method.
Split Time after 1 sec: 1000
Split Time after 2 sec: 2000
Time after 3 sec: 3000