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

📄 timer.java

📁 这是java 开发的的免费语音播放插件,很值得学习参考!!!!!!!!!!!!111
💻 JAVA
字号:
/** * Copyright 2001 Sun Microsystems, Inc. *  * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL  * WARRANTIES. */package com.sun.speech.freetts.util;import java.text.DecimalFormat;/** * Keeps track of execution times. */public class Timer {    private final static DecimalFormat timeFormatter 	= new DecimalFormat("###0.0000");    private final static DecimalFormat percentFormatter 	= new DecimalFormat("###0.00%");    private String name;    private long startTime;    private long curTime;    private long count;    private double sum;    private long minTime = Long.MAX_VALUE;    private long maxTime = 0L;    private boolean notReliable; // if true, timing is not reliable    /**     * Creates a timer.     *     * @param name the name of the timer     */    public Timer(String name) {         this.name = name;	 reset();    }    /**     * Resets the timer as if it has never run before.     */    public void reset() {	startTime = 0L;	count = 0L;	sum = 0L;	minTime = Long.MAX_VALUE;	maxTime = 0L;	notReliable = false;    }    /**     * Starts the timer running.     */    public void start() {	if (startTime != 0L) {	    notReliable = true;	// throw new IllegalStateException("timer stutter start " + name);	}	startTime = System.currentTimeMillis();    }    /**     * Returns the current time.     *     * @return the current time     */    public long getCurrentTime() {	return curTime;    }    /**     * Stops the timer.     *     * @param verbose if <code>true</code>, print out details from     * 	this run; otherwise, don't print the details     */    public void stop(boolean verbose) {	if (startTime == 0L) {	    notReliable = true;	}	curTime = System.currentTimeMillis() - startTime;	startTime = 0L;	if (curTime > maxTime) {	    maxTime = curTime;	}	if (curTime < minTime) {	    minTime = curTime;	}	count++;	sum += curTime;	if (verbose) {	    showTimesShort(0L);	}    }    /**     * Stops the timer.     */    public void stop() {	stop(false);    }    /**     * Formats times into a standard format.     *     * @param time the time (in milliseconds) to be formatted     *     * @return a string representation of the time.     */    private String fmtTime(long time) {	return fmtTime(time/1000.0);    }    /**     * Formats times into a standard format.     *     * @param time the time (in seconds) to be formatted     *     * @return a string representation of the time.     */    private String fmtTime(double time) {	return Utilities.pad(timeFormatter.format(time) + "s", 10);    }    /**     * Shows detailed timing stats. If overall is non-zero, it represents     * the overall processing time and a percentage of overall     * time for this timer should be calculated and displayed.     *     * @param overall the overall processing time in milliseconds or 0.     */    public void showTimesLong(long overall) {	System.out.println(" Timer:    " + name);	System.out.println(" Count:    " + count);	if (notReliable) {		System.out.println(" Not reliable");	} else {	    if (count == 1) {		System.out.println(" Cur Time: " + fmtTime(curTime));	    } else if (count > 1) {		System.out.println(" Min Time: " + fmtTime(minTime));		System.out.println(" Max Time: " + fmtTime(maxTime));		System.out.println(" Avg Time: " 			+ fmtTime(sum / count / 1000.0));		System.out.println(" Tot Time: " + fmtTime(sum /1000.0));		if (overall != 0) {		    System.out.println(" Percent:  " 			    + percentFormatter.format(sum / overall));		}	    }	}	System.out.println();    }    /**     * Shows the timing stats title.     *     * @param title shows the title and column headings for the time     * 	display     */    public static void showTimesShortTitle(String title) {	String titleBar =             "# ----------------------------- " + title +             "----------------------------------------------------------- ";        System.out.println(Utilities.pad(titleBar, 78));	System.out.print(Utilities.pad("# Name", 15) + " ");	System.out.print(Utilities.pad("Count", 6));	System.out.print(Utilities.pad("CurTime", 10));	System.out.print(Utilities.pad("MinTime", 10));	System.out.print(Utilities.pad("MaxTime", 10));	System.out.print(Utilities.pad("AvgTime", 10));	System.out.print(Utilities.pad("TotTime", 10));	System.out.print(Utilities.pad("% Total", 8));	System.out.println();    }    /**     * Shows brief timing stats. If overall is non-zero, it represents     * the overall processing time and a percentage of overall     * time for this timer should be calculated and displayed.     *     * @param overall the overall processing time in milliseconds or 0.     */    public void showTimesShort(long overall) {	double avgTime  = 0.0;	double totTime = sum / 1000.0;	double overallPercent = 0;	/*	if (curTime == 0) {	    return;	}	*/	if (count == 0) {	    return;	}		if (count > 0) {	    avgTime = sum / count / 1000.0;	}	if (overall != 0) {	    overallPercent = sum / overall;	}	if (notReliable) {	    System.out.print(Utilities.pad(name, 15) + " ");	    System.out.println("Not reliable.");	} else {	    System.out.print(Utilities.pad(name, 15) + " ");	    System.out.print(Utilities.pad("" + count, 6));	    System.out.print(fmtTime(curTime));	    System.out.print(fmtTime(minTime));	    System.out.print(fmtTime(maxTime));	    System.out.print(fmtTime(avgTime));	    System.out.print(fmtTime(sum / 1000.0));	    System.out.print(percentFormatter.format(overallPercent));	    System.out.println();	}    }    /**     * Shows timing stats. If overall is non-zero, it represents     * the overall processing time and a percentage of overall     * time for this timer should be calculated and displayed.     *     * @param overall the overall processing time in milliseconds or 0.     */    public void showTimes(long overall) {	showTimesShort(overall);    }    /**     * Shows timing stats. No overall percentage is shown with this     * method.     */    public void showTimes() {	// showTimes(0L);	showTimesShort(0L);    }    /**     * The main program for performing simple tests. Creates a timer     * uses it and shows its output.     *     * @param args	program arguments (not used)     */    public static void main(String[] args) {	   Timer timer = new Timer("testTimer");	   Timer overallTimer = new Timer("overall");	   timer.showTimes(0L);	   overallTimer.start();	   for (int i = 0; i < 5; i++) {	       timer.start();	       try {		   Thread.sleep(i * 1000L);		} catch (InterruptedException e) {		}	       timer.stop(true);	   }	   overallTimer.stop();	   timer.showTimes(overallTimer.getCurrentTime());	   overallTimer.showTimes();    }}

⌨️ 快捷键说明

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