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

📄 taskstats.java

📁 lucene2.2.0版本
💻 JAVA
字号:
package org.apache.lucene.benchmark.byTask.stats;/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */import org.apache.lucene.benchmark.byTask.tasks.PerfTask;/** * Statistics for a task run.  * <br>The same task can run more than once, but, if that task records statistics,  * each run would create its own TaskStats. */public class TaskStats implements Cloneable {  /** task for which data was collected */  private PerfTask task;   /** round in which task run started */  private int round;  /** task start time */  private long start;    /** task elapsed time.  elapsed >= 0 indicates run completion! */  private long elapsed = -1;    /** max tot mem during task */  private long maxTotMem;    /** max used mem during task */  private long maxUsedMem;    /** serial run number of this task run in the perf run */  private int taskRunNum;    /** number of other tasks that started to run while this task was still running */   private int numParallelTasks;    /** number of work items done by this task.   * For indexing that can be number of docs added.   * For warming that can be number of scanned items, etc.    * For repeating tasks, this is a sum over repetitions.   */  private int count;  /** Number of similar tasks aggregated into this record.      * Used when summing up on few runs/instances of similar tasks.   */  private int numRuns = 1;    /**   * Create a run data for a task that is starting now.   * To be called from Points.   */  TaskStats (PerfTask task, int taskRunNum, int round) {    this.task = task;    this.taskRunNum = taskRunNum;    this.round = round;    maxTotMem = Runtime.getRuntime().totalMemory();    maxUsedMem = maxTotMem - Runtime.getRuntime().freeMemory();    start = System.currentTimeMillis();  }    /**   * mark the end of a task   */  void markEnd (int numParallelTasks, int count) {    elapsed = System.currentTimeMillis() - start;    long totMem = Runtime.getRuntime().totalMemory();    if (totMem > maxTotMem) {      maxTotMem = totMem;    }    long usedMem = totMem - Runtime.getRuntime().freeMemory();    if (usedMem > maxUsedMem) {      maxUsedMem = usedMem;    }    this.numParallelTasks = numParallelTasks;    this.count = count;  }  /**   * @return the taskRunNum.   */  public int getTaskRunNum() {    return taskRunNum;  }  /* (non-Javadoc)   * @see java.lang.Object#toString()   */  public String toString() {    StringBuffer res = new StringBuffer(task.getName());    res.append(" ");    res.append(count);    res.append(" ");    res.append(elapsed);    return res.toString();  }  /**   * @return Returns the count.   */  public int getCount() {    return count;  }  /**   * @return elapsed time.   */  public long getElapsed() {    return elapsed;  }  /**   * @return Returns the maxTotMem.   */  public long getMaxTotMem() {    return maxTotMem;  }  /**   * @return Returns the maxUsedMem.   */  public long getMaxUsedMem() {    return maxUsedMem;  }  /**   * @return Returns the numParallelTasks.   */  public int getNumParallelTasks() {    return numParallelTasks;  }  /**   * @return Returns the task.   */  public PerfTask getTask() {    return task;  }  /**   * @return Returns the numRuns.   */  public int getNumRuns() {    return numRuns;  }  /**   * Add data from another stat, for aggregation   * @param stat2 the added stat data.   */  public void add(TaskStats stat2) {    numRuns += stat2.getNumRuns();    elapsed += stat2.getElapsed();    maxTotMem += stat2.getMaxTotMem();    maxUsedMem += stat2.getMaxUsedMem();    count += stat2.getCount();    if (round != stat2.round) {      round = -1; // no meaning if agregating tasks of different ruond.     }  }  /* (non-Javadoc)   * @see java.lang.Object#clone()   */  public Object clone() throws CloneNotSupportedException {    return super.clone();  }  /**   * @return the round number.   */  public int getRound() {    return round;  }  }

⌨️ 快捷键说明

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