public class StopWatch {

static public int AN_HOUR = 60 * 60 * 1000;

static public int A_MINUTE = 60 * 1000;

;PRivate long startTime = -1;

private long stopTime = -1;

/**

;* 启动秒表

*/

public void start() {

this.startTime =System.currentTimeMillis();

}

/**

* 停止秒表

*/

public void stop() {

this.stopTime =System.currentTimeMillis();

}

/**

* 重置秒表

*/

public void reset() {

this.startTime = -1;

this.stopTime = -1;

}

/**

* 分割时间

*/

public void split() {

this.stopTime =System.currentTimeMillis();

}

/**

* 移除分割

*/

public void unsplit() {

this.stopTime = -1;

}

/**

* 获得秒表的时间,这个时间或者是启动时和最后一个分割时刻的时间差,

* 或者是启动时和停止时的时间差,或者是启动时和这个方法被调用时的差

*/

public long getTime() {

if(stopTime != -1) {

return(System.currentTimeMillis() - this.startTime);

} else {

return this.stopTime - this.startTime;

}

}

public String toString() {

return getTimeString();

}

/**

* 取得String类型的时间差

* 形式为小时,分钟,秒和毫秒

;*/

public String getTimeString() {

int hours, minutes, seconds,milliseconds;

long time = getTime();

hours = (int) (time / AN_HOUR);

time = time - (hours *AN_HOUR);

minutes = (int) (time /

A_MINUTE);

time = time - (minutes *A_MINUTE);

seconds = (int) (time / 1000);

time = time - (seconds * 1000);

milliseconds = (int) time;

return hours + "h:" +minutes + "m:"_

+ seconds + "s:" + milliseconds +

}

与大块的代码相比,它是非常简单的。但是它可重用而毫不复杂。因此StopWatch类的使用也是非常简单的:

StopWatch obj = new StopWatch();

obj.start();

try {

Thread.currentThread().sleep(1500);

} catch(InterruptedException ie) {

// ignore

}

obj.stop();

System.out.println(obj);

我们执行了1500豪秒sleep,完全在预料之中的,StopWatch的报告为:

0h:0m:1s:502ms

StopWatch不是深奥复杂的科学,但是它确实满足了常见的测量代码行间执行时间的需求

StopWatch stopWatch = new Slf4JStopWatch();  -- 可以new 不同格式的stopWatch

使用StopWatch类来计时 (perf4j-0.9.16.jar 包里的类)的更多相关文章

  1. PHP通过php-java-bridge调用JAVA的jar包里class类

    正 文:   有的时候我们需要在PHP里调用JAVA平台封装好的jar包里的class类和方法,一般飘易推荐的做法是采用php-java-bridge做桥接,本文就来介绍一下大致的实现方法. 先简单说 ...

  2. spring3 mvc使用注解方式时,不能扫描jar包里面的类

    使用eclipse export工具时选中Add directory entries可以解决.

  3. Androidstudio中jar包重复或jar包里的类重复问题

    https://www.jianshu.com/p/dd5d4fda1df8 http://blog.csdn.net/hqb112233/article/details/51514208

  4. Java 操作jar包工具类以及如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  5. spring 3.0版本以上jar包使用以及依赖关系

    本文转载自:http://blog.csdn.net/huiwenjie168/article/details/8477837 spring.jar是包含有完整发布的单个jar包,spring.jar ...

  6. 27 Java动态加载第三方jar包中的类

    我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String pr ...

  7. java中使用URLClassLoader访问外部jar包的java类

    很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...

  8. Java项目中如何扩展第三方jar包中的类?

    有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比 ...

  9. 获取类路径中含有beans.xml的jar包名称

    获取类路径中含有beans.xml的jar包名称 package com.stono; import java.io.File; import java.io.IOException; import ...

随机推荐

  1. Vulnhub 靶场 Dijnn WP

    About djinn: 1 描述 难度级别:中等 Flag:user.txt和root.txt 说明:该计算机是VirtualBox以及VMWare兼容的.DHCP将自动分配IP.您将在登录屏幕上看 ...

  2. pandas 的常用方法

    pandas的常用方法: 1.数据输入 2.数据查看 3.数据清洗 4.数据处理 5.数据提取 6.数据筛选 7.数据汇总 8.数据统计 9.数据输出 详情见: https://blog.csdn.n ...

  3. [BFS]Codeforces Igor In the Museum

     Igor In the Museum time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. 你真的理解 if __name__ == '__main__' 的作用么?

    https://blog.csdn.net/Amberdreams/article/details/88382993

  5. 特征选择与稀疏学习(Feature Selection and Sparse Learning)

    本博客是针对周志华教授所著<机器学习>的"第11章 特征选择与稀疏学习"部分内容的学习笔记. 在实际使用机器学习算法的过程中,往往在特征选择这一块是一个比较让人模棱两可 ...

  6. Sprinboot 整合 RabbitMQ,RabbitMQ 消息重试机制

    当消费者消费消息的时候,出现错误,RabbitMQ 本身会有

  7. [vijos1880]选课<树形dp>

    题目链接:https://www.vijos.org/p/1180 这是一道树形dp的裸题,唯一的有意思的地方就是用到了多叉树转二叉树 然后本蒟蒻写这一道水题就是因为以前知道这个知识点但是没有怎么去实 ...

  8. java Jsoup.clean 处理入参时,会将换行符解析成空字符串问题

    Json 中clean方法有两个: 一:会格式化入参,将换行符替换成空格 clean(String bodyHtml, String baseUri, Whitelist whitelist) 二:n ...

  9. C - 啥~ 渣渣也想找玩数字 HDU - 2141(有序序列枚举 + 二分优化查找)

    题目描述 可爱的演演又来了,这次他想问渣渣一题... 如果给你三个数列 A[],B[],C[],请问对于给定的数字 X,能否从这三个数列中各选一个,使得A[i]+B[j]+C[k]=X? 输入 多组数 ...

  10. css中(单冒号):after和(双冒号)::after的区别

    :after是伪元素 .::after是伪类 什么是伪类? CSS伪类是添加到选择器的关键字,指定要选择的元素的特殊状态.例如,:hover可被用于在用户将鼠标悬停在按钮上时改变按钮的颜色. ::af ...