亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stopwatch.java

?? 本套系統采用了業界當前最為流行的beanAction組件
?? JAVA
字號:
/*
 *  Copyright 2004 Clinton Begin
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.ibatis.common.util;

import com.ibatis.common.logging.Log;
import com.ibatis.common.logging.LogFactory;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * Stopwatch class used for testing.
 */
public class Stopwatch {

  private static final Log log = LogFactory.getLog(Stopwatch.class);

  private Map taskMap = new HashMap();

  private String currentTaskName = null;
  private long currentTaskTime = 0;

  /**
   * Get an iterator of the tasks
   * @return - the Iterator
   */
  public Iterator getTaskNames() {
    return taskMap.keySet().iterator();
  }

  /**
   * Get the number of times assigned to a task
   * @param taskName - the name of the task
   * @return - the number of times
   */
  public long getTaskCount(String taskName) {
    return ((TaskStat) taskMap.get(taskName)).getCount();
  }

  /**
   * Get the total time added to a task
   * @param taskName - the name of the task
   * @return - the total time added to the task
   */
  public long getTotalTaskTime(String taskName) {
    return ((TaskStat) taskMap.get(taskName)).getTotal();
  }

  /**
   * Get the maximum time added to a task
   * @param taskName - the name of the task
   * @return - the maximum time added to a task
   */
  public long getMaxTaskTime(String taskName) {
    return ((TaskStat) taskMap.get(taskName)).getMax();
  }

  /**
   * Get the minimum time added to a task
   * @param taskName - the name of the task
   * @return - the minimum time added to a task
   */
  public long getMinTaskTime(String taskName) {
    return ((TaskStat) taskMap.get(taskName)).getMin();
  }

  /**
   * Get the average time added to a task
   * @param taskName - the name of the task
   * @return - the average time added to a task
   */
  public long getAvgTaskTime(String taskName) {
    return ((TaskStat) taskMap.get(taskName)).getAverage();
  }

  /**
   * Start (create) a task
   * @param taskName - the name of the task
   */
  public void start(String taskName) {
    if (log.isDebugEnabled()) {
      log.debug("Starting: " + taskName);
    }
    this.currentTaskName = taskName;
    currentTaskTime = System.currentTimeMillis();
  }

  /**
   * Stop the timer on a task
   */
  public void stop() {
    if (log.isDebugEnabled()) {
      log.debug("Stopping: " + currentTaskName);
    }
    currentTaskTime = System.currentTimeMillis() - currentTaskTime;
    appendTaskTime(currentTaskName, currentTaskTime);
  }

  private synchronized void appendTaskTime(String taskName, long taskTime) {
    TaskStat stat = (TaskStat) taskMap.get(taskName);
    if (stat == null) {
      stat = new TaskStat();
      taskMap.put(taskName, stat);
    }
    stat.appendTaskTime(taskTime);
  }

  /**
   * Merge another StopWatch into this one
   * @param watch - the StopWatch to merge into this one
   */
  public void mergeStopwatch(Stopwatch watch) {
    Iterator names = watch.getTaskNames();
    while (names.hasNext()) {
      String name = (String) names.next();
      long taskTime = watch.getTotalTaskTime(name);
      appendTaskTime(name, taskTime);
    }
  }

  /**
   * Reset all of the timers in this StopWatch
   */
  public synchronized void reset() {
    taskMap.clear();
  }

  public String toString() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("Task,Count,Total,Max,Min,Avg\n");
    Iterator names = getTaskNames();
    while (names.hasNext()) {
      String name = (String) names.next();
      long taskCount = getTaskCount(name);
      long taskTime = getTotalTaskTime(name);
      long taskMin = getMinTaskTime(name);
      long taskMax = getMaxTaskTime(name);
      long taskAvg = getAvgTaskTime(name);
      buffer.append(name + "," + taskCount + "," + taskTime + "," + taskMax + "," + taskMin + "," + taskAvg + "\n");
    }
    return buffer.toString();
  }

  private class TaskStat {
    private static final long UNSET = -999999;

    private long count = 0;
    private long total = 0;
    private long min = UNSET;
    private long max = UNSET;

    /**
     * Add some time to a task
     * @param taskTime - the time to add
     */
    public void appendTaskTime(long taskTime) {
      count++;
      total += taskTime;
      if (max == UNSET || taskTime > max) {
        max = taskTime;
      }
      if (min == UNSET || taskTime < min) {
        min = taskTime;
      }
    }

    /**
     * Get the total time for the task
     * @return - the total time
     */
    public long getTotal() {
      return total;
    }

    /**
     * Get the maximum of the times added to the task
     * @return - the max value
     */
    public long getMax() {
      return max;
    }

    /**
     * Get the minimum of the times added to the task
     * @return - the minimum value
     */
    public long getMin() {
      return min;
    }

    /**
     * Get the number of times added to the task
     * @return - the number of times
     */
    public long getCount() {
      return count;
    }

    /**
     * Get the average of the times added to the task
     * @return - the average
     */
    public long getAverage() {
      if (count > 0) {
        return Math.round((double) total / (double) count);
      } else {
        return 0;
      }
    }

  }

}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区黄视频| 久久91精品国产91久久小草| 亚洲午夜一区二区| 久久精品国产精品青草| 成人黄色小视频| 欧美日韩在线精品一区二区三区激情 | 久久久久国产一区二区三区四区| 欧美国产日韩在线观看| 亚洲午夜一二三区视频| 成人激情动漫在线观看| 欧美酷刑日本凌虐凌虐| 亚洲欧美日韩精品久久久久| 麻豆精品在线视频| 欧美中文字幕一区二区三区亚洲| 久久久久久99久久久精品网站| 亚洲综合丁香婷婷六月香| 成人一区二区视频| 日韩色视频在线观看| 亚洲人成精品久久久久久| 国产精品一品二品| 欧美顶级少妇做爰| 亚洲高清免费视频| 成人综合婷婷国产精品久久| 欧美日韩www| 亚洲制服欧美中文字幕中文字幕| 国产东北露脸精品视频| 久久综合九色综合97_久久久| 亚洲乱码一区二区三区在线观看| 韩国av一区二区三区在线观看| 欧美高清性hdvideosex| 一区二区久久久| 在线观看亚洲专区| 亚洲欧美日韩一区| 日本不卡在线视频| 777亚洲妇女| 一区二区三区波多野结衣在线观看 | 亚洲电影一区二区| 欧美在线播放高清精品| 中文字幕亚洲不卡| 亚洲成人午夜电影| 日韩女优电影在线观看| 国产乱人伦偷精品视频不卡| 欧美亚洲国产一区在线观看网站| 国产精品久久久久影院| 国产精品影视天天线| 日韩女优制服丝袜电影| 国产毛片一区二区| 日韩欧美三级在线| 高清免费成人av| 久久久久久电影| 精品一区二区三区在线视频| 欧美精品一区二区久久久| 麻豆一区二区99久久久久| 精品国产免费一区二区三区四区| 秋霞午夜鲁丝一区二区老狼| 一本到不卡免费一区二区| 国产精品久久久久久久久动漫| 国产99久久久国产精品潘金网站| 中文字幕欧美一| 91久久精品一区二区| 美女一区二区三区| 婷婷中文字幕综合| 日韩三级高清在线| 久久国产成人午夜av影院| 3atv一区二区三区| 韩国av一区二区三区四区| xnxx国产精品| 色综合色综合色综合 | 亚洲成人免费av| 欧美一区二区三区播放老司机| 污片在线观看一区二区| 精品美女在线观看| 色婷婷综合久久| 免费精品视频在线| 国产精品传媒入口麻豆| 91国在线观看| 丝袜亚洲另类丝袜在线| 久久久久久久久久久久电影| 99久久99久久精品免费看蜜桃| 日本不卡一区二区三区| 久久久777精品电影网影网| 色88888久久久久久影院按摩| 午夜日韩在线观看| 777久久久精品| 91麻豆国产福利精品| 天天av天天翘天天综合网 | 国产在线精品一区在线观看麻豆| 国产肉丝袜一区二区| 6080国产精品一区二区| 成人av在线电影| 国产在线精品免费| 一区二区在线看| 日韩女优制服丝袜电影| 欧洲另类一二三四区| 国产精品亚洲人在线观看| 另类的小说在线视频另类成人小视频在线| 国产精品妹子av| 欧美电影免费观看高清完整版| 99久久99久久精品免费看蜜桃 | 日韩国产精品大片| 亚洲日本在线天堂| 中文字幕日韩一区| 久久久夜色精品亚洲| 欧美精品成人一区二区三区四区| 国产成人精品午夜视频免费| 亚洲成a人片在线观看中文| 亚洲视频一二三| 久久久久久久电影| www成人在线观看| 欧美日韩激情一区| 51精品秘密在线观看| 欧美在线一区二区| 91福利视频网站| 91毛片在线观看| 国产成人高清在线| jiyouzz国产精品久久| 国产精品456露脸| 国产69精品久久久久毛片 | 精品国产凹凸成av人导航| 欧美一卡在线观看| 欧美日韩美少妇| 欧美一区二区视频在线观看2022 | 精品无码三级在线观看视频| 亚洲成人激情av| 亚洲自拍偷拍欧美| 日韩高清在线观看| 日韩成人dvd| 国内精品嫩模私拍在线| 美腿丝袜亚洲色图| 国产麻豆一精品一av一免费 | 国产乱码精品一品二品| 麻豆国产91在线播放| 国产激情一区二区三区桃花岛亚洲| 久久国产尿小便嘘嘘| 国产在线播放一区| 国产福利一区二区| 日本美女一区二区| 国产精品一区不卡| 成人网页在线观看| 欧美日韩在线综合| 91麻豆精品国产91久久久使用方法| 日韩一区二区精品葵司在线 | 欧美一区二区黄色| 欧美一区二区三区男人的天堂| 欧美mv日韩mv国产网站app| 欧美一区午夜视频在线观看 | 韩国av一区二区| 国产福利电影一区二区三区| 97超碰欧美中文字幕| 色94色欧美sute亚洲线路一ni | 成人动漫中文字幕| 93久久精品日日躁夜夜躁欧美| 丰满放荡岳乱妇91ww| 国产一区二区三区四区五区入口 | 欧美一区三区二区| 精品日韩在线观看| 一区二区三区在线视频观看 | 亚洲另类春色校园小说| 一区二区理论电影在线观看| 韩国午夜理伦三级不卡影院| av成人老司机| 日韩午夜电影av| 国产精品传媒入口麻豆| 中文字幕一区av| 久久99国产精品免费网站| 国产盗摄一区二区三区| 4hu四虎永久在线影院成人| 久久精子c满五个校花| 香蕉乱码成人久久天堂爱免费| 免费观看日韩电影| 国产一区二区伦理| 欧美性大战久久久久久久蜜臀| 这里只有精品视频在线观看| 亚洲欧美另类在线| 久久99蜜桃精品| 欧美日韩在线观看一区二区| 久久久青草青青国产亚洲免观| 亚洲成av人片一区二区| 国产成人av资源| 日韩一区二区视频| 亚洲精品久久7777| 久久精品99国产精品日本| 欧美性色黄大片| 久久久美女艺术照精彩视频福利播放| 五月婷婷综合在线| 99re在线精品| 国产欧美一区二区三区网站| 日韩精品欧美精品| 色综合 综合色| 中文字幕精品一区二区三区精品| 日本最新不卡在线| 欧美系列在线观看| 欧美成人aa大片| 麻豆极品一区二区三区| 色综合视频在线观看| 亚洲天堂精品在线观看| 成人午夜激情影院| 中文字幕av一区二区三区| 精品一区二区三区免费观看| 日韩欧美亚洲另类制服综合在线|