⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statsgatherer.java

📁 The Staged Event-Driven Architecture (SEDA) is a new design for building scalable Internet services.
💻 JAVA
字号:
import java.util.*;public class StatsGatherer {  private Hashtable histogram;  private int bucketSize;  private String name;  private String tag;  private double mean = -1;  private int skipSamples;  private int skip = 0;  public int num = 0;  public long maxVal = 0;  public long cumulativeVal = 0;  StatsGatherer(String name, String tag, int bucketSize, int skipSamples) {    this.name = name;    this.tag = tag;    this.bucketSize = bucketSize;    this.skipSamples = skipSamples;    if (bucketSize != 0) {      histogram = new Hashtable(1);    }  }  public synchronized void add(long val) {    if (skip < skipSamples) {      skip++;      return;    }    num++;    if (val > maxVal) maxVal = val;    cumulativeVal += val;    if (bucketSize != 0) {      Integer ct = new Integer((int)val / bucketSize);      Integer bval = (Integer)histogram.remove(ct);      if (bval == null) {	histogram.put(ct, new Integer(1));      } else {	bval = new Integer(bval.intValue() + 1);	histogram.put(ct, bval);      }    }  }  synchronized void dumpHistogram() {    Enumeration e = histogram.keys();    while (e.hasMoreElements()) {      Integer bucket = (Integer)e.nextElement();      int time = bucket.intValue() * bucketSize;      int val = ((Integer)histogram.get(bucket)).intValue();      System.err.println(tag+" "+time+" ms "+val+" count");    }    System.err.println("\n");  }  double mean() {    if (num == 0) return 0.0;    return (cumulativeVal * 1.0)/num;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -