DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

StopWatch - Why Is My App So Slow ???

02.07.2007
| 6557 views |
  • submit to reddit
        StopWatch is a small class allowing to manage multiple concurrent stopwatches to measure time elapsed between two calls. Nothing is done while time is rolling (no thread, no loop), it only stores and compares timestamps.

import java.util.Hashtable;

public class StopWatch {
    private static final Hashtable startTime = new Hashtable();
    
    public static void start(String id){
        startTime.put(id,new Long(System.currentTimeMillis()));
    }

    public static long stop(String id){
        return System.currentTimeMillis() - ((Long)startTime.remove(id)).longValue();
    }
}

Example of use :
public main(String[] args) {
    // Start a global stopwatch
    StopWatch.start("GLOBAL");

    // evaluate time used by task 1
    StopWatch.start("TASK1");
    executeTask1();
    System.out.println("Time elapsed for task 1 : " + StopWatch.stop("TASK1") + "ms";

    // evaluate time used by task 2
    StopWatch.start("TASK2");
    executeTask2();
    System.out.println("Time elapsed for task 2 : " + StopWatch.stop("TASK2") + "ms";

    // Display time elapsed for full processing
    System.out.println("Total processing time : " + StopWatch.stop("GLOBAL") + "ms";
}
    

Comments

Snippets Manager replied on Wed, 2007/02/07 - 5:34pm

I did not know the Commons version :-) It's easy to add some more functionality to my version, but the goal of this snippet was only to give a realy small and easy time measure tool. I see a few benefits to my own StopWatch : - Easy to integrate in any project : no external lib - Lightweight : only based on static calls to a Hashtable singleton for a full collection of watches (replace the Hashtable with any other Map for better performance)

Derek Eskens replied on Wed, 2007/02/14 - 11:37am

Nice, but the Jakarta Commons version has a bit more functionality. http://jakarta.apache.org/commons/lang/api-release/org/apache/commons/lang/time/StopWatch.html

Snippets Manager replied on Sun, 2007/02/11 - 5:06am

nice!