Home | History | Annotate | Download | only in bcel
      1 /*
      2  * Licensed to the Apache Software Foundation (ASF) under one or more
      3  * contributor license agreements.  See the NOTICE file distributed with
      4  * this work for additional information regarding copyright ownership.
      5  * The ASF licenses this file to You under the Apache License, Version 2.0
      6  * (the "License"); you may not use this file except in compliance with
      7  * the License.  You may obtain a copy of the License at
      8  *
      9  *   http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  *
     17  */
     18 
     19 package org.apache.bcel;
     20 
     21 public class NanoTimer {
     22 
     23     private long time = 0;
     24 
     25     public NanoTimer start() {
     26         time -= System.nanoTime();
     27         return this;
     28     }
     29 
     30     public void stop() {
     31         time += System.nanoTime();
     32     }
     33 
     34     public void subtract(final NanoTimer o) {
     35         time -= o.time;
     36     }
     37 
     38     public void reset() {
     39         time = 0;
     40     }
     41 
     42     /**
     43      * May ony be called after stop has been called as many times as start.
     44      */
     45     @Override
     46     public String toString() {
     47         return ((double) time / 1000000000) + " s";
     48     }
     49 
     50 
     51 
     52 }
     53