Mega Code Archive

 
Categories / Java / Development Class
 

A class for timing things

/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.    This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).    http://www.cs.umass.edu/~mccallum/mallet    This software is provided under the terms of the Common Public License,    version 1.0, as published by http://www.opensource.org.  For further    information, see the file `LICENSE' included with this distribution. */ //package cc.mallet.util; /**  * A class for timing things.  * Originally inspired by the Timing class in the Stanford NLP cade,  * but completely rewritten.  * <p/>  * Created: Dec 30, 2004  *  * @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A>  * @version $Id: Timing.java,v 1.1 2007/10/22 21:37:40 mccallum Exp $  */ public class Timing {   private long objCreationTime;   private long startTime;   public Timing ()   {     startTime = System.currentTimeMillis ();     objCreationTime = startTime;   }   /**    * Print to System.out how much time has passed, resetting this Timing's start time to    * the current time.  Time is measured from the most recent    * <code>tick</code> call, or when this object was created.    *    * @param msg Prefix of string printed with time    * @return Number of elapsed milliseconds from tick (or start)    */   public long tick (String msg)   {     long elapsed = report (msg);     startTime = System.currentTimeMillis ();     return elapsed;   }   /**    * Returns how much time as passed since Object creation, or the most recent call to tick().    * @return Number of elapsed milliseconds    */   public long elapsedTime ()   {     return System.currentTimeMillis () - startTime;   }   /**    * Returns the number of milliseconds since this object was created.    * Ignores previous calls to <tt>tick</tt>, unlike    * <tt>elapsedTime</tt> and <tt>tick</tt>.    */   public long totalElapsedTime ()   {     return System.currentTimeMillis () - objCreationTime;   }   /** Like tick(), but doesn't reset the counter. */   public long report (String msg)   {     long currentTime = System.currentTimeMillis ();     long elapsed = currentTime - startTime;     System.out.println (msg + " time (ms) =  " + (elapsed));     return elapsed;   } }