package com.profiler; import java.util.HashMap; import java.util.Map; import com.profiler.util.NamedThreadLocal; public class StopWatch { private static ThreadLocal> local = new NamedThreadLocal>("StopWatch"); public static void start(String name) { Map map = local.get(); if (map == null) { map = new HashMap(1); map.put(name, System.currentTimeMillis()); local.set(map); } else { map.put(name, System.currentTimeMillis()); } } public static long stopAndGetElapsed(String name) { Map map = local.get(); if (map == null) { throw new IllegalStateException("Stopwatch is not started."); } else { return System.currentTimeMillis() - map.get(name); } } }