blob: 22ab440929715051a493bce4815449298434c8ce [file] [log] [blame]
crazybobleeabc4dd02007-02-01 01:44:36 +00001/**
2 * Copyright (C) 2006 Google Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
crazyboblee9bb62022007-02-01 00:06:53 +000016
kevinb9ncad2c2b2007-05-15 17:28:03 +000017package com.google.inject.internal;
crazyboblee9bb62022007-02-01 00:06:53 +000018
19import java.util.logging.Logger;
20
21/**
crazybobleeef83bd22007-02-01 00:52:57 +000022 * Enables simple performance monitoring.
23 *
crazyboblee9bb62022007-02-01 00:06:53 +000024 * @author crazybob@google.com (Bob Lee)
25 */
limpbizkit5ae41eb2009-06-06 17:51:27 +000026final class Stopwatch {
limpbizkit3d58d6b2008-03-08 16:11:47 +000027 private static final Logger logger = Logger.getLogger(Stopwatch.class.getName());
crazyboblee9bb62022007-02-01 00:06:53 +000028
limpbizkit3d58d6b2008-03-08 16:11:47 +000029 private long start = System.currentTimeMillis();
crazyboblee9bb62022007-02-01 00:06:53 +000030
31 /**
kevinb9nd4d4df32007-03-08 21:22:37 +000032 * Resets and returns elapsed time in milliseconds.
crazyboblee9bb62022007-02-01 00:06:53 +000033 */
crazybobleeef83bd22007-02-01 00:52:57 +000034 public long reset() {
crazyboblee9bb62022007-02-01 00:06:53 +000035 long now = System.currentTimeMillis();
36 try {
37 return now - start;
38 } finally {
39 start = now;
40 }
41 }
42
43 /**
kevinb9nd4d4df32007-03-08 21:22:37 +000044 * Resets and logs elapsed time in milliseconds.
crazyboblee9bb62022007-02-01 00:06:53 +000045 */
limpbizkit3d58d6b2008-03-08 16:11:47 +000046 public void resetAndLog(String label) {
kevinb9nd4d4df32007-03-08 21:22:37 +000047 logger.fine(label + ": " + reset() + "ms");
crazyboblee9bb62022007-02-01 00:06:53 +000048 }
49}