论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
【J2SE综合】使用StopWatch类来计时
 作者:佚名     2007-3-14 16:13:01        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

调试器是一个繁重的东西,使用调试器并不总是最有效的方法;有时,你可能想对代码进行一些小的调试和跟踪。一个简单的StopWatch类就是提供了一种好的计时解决方案。

  1. package com.generationjava.test;
  2. /**
  3.  * 在调试或者测试情形下需要计时非常有用
  4.  */
  5. public class StopWatch {
  6.   static public int AN_HOUR = 60 * 60 * 1000;
  7.   static public int A_MINUTE = 60 * 1000;
  8.   private long startTime = -1;
  9.   private long stopTime = -1;
  10.   /**
  11.    * 启动秒表
  12.    */
  13.   public void start() {
  14.     this.startTime =System.currentTimeMillis();
  15.   }
  16.   /**
  17.    * 停止秒表
  18.    */
  19.   public void stop() {
  20.     this.stopTime =System.currentTimeMillis();
  21.   }
  22.   /**
  23.    * 重置秒表
  24.    */
  25.   public void reset() {
  26.     this.startTime = -1;
  27.     this.stopTime = -1;
  28.   }
  29.   /**
  30.    * 分割时间
  31.    */
  32.   public void split() {
  33.     this.stopTime =System.currentTimeMillis();
  34.   }
  35.   /**
  36.    * 移除分割
  37.    */
  38.   public void unsplit() {
  39.     this.stopTime = -1;
  40.   }
  41.   /**
  42.    * 获得秒表的时间,这个时间或者是启动时和最后一个分割时刻的时间差,
  43.    * 或者是启动时和停止时的时间差,或者是启动时和这个方法被调用时的差
  44.    */
  45.   public long getTime() {
  46.     if(stopTime != -1) {
  47.       return(System.currentTimeMillis() - this.startTime);
  48.     } else {
  49.       return this.stopTime - this.startTime;
  50.     }
  51.   }
  52.   public String toString() {
  53.     return getTimeString();
  54.   }
  55.   /**
  56.    * 取得String类型的时间差
  57.    * 形式为小时,分钟,秒和毫秒
  58.    */
  59.   public String getTimeString() {
  60.     int hours, minutes, seconds,milliseconds;
  61.     long time = getTime();
  62.     hours = (int) (time / AN_HOUR);
  63.     time = time - (hours *AN_HOUR);
  64.     minutes = (int) (time /A_MINUTE);
  65.     time = time - (minutes *A_MINUTE);
  66.     seconds = (int) (time / 1000);
  67.     time = time - (seconds * 1000);
  68.     milliseconds = (int) time;
  69.     return hours + "h:" +minutes + "m:"
  70.      + seconds + "s:" + milliseconds +
  71.   }



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

  1. StopWatch obj = new StopWatch();
  2. obj.start();
  3. try{
  4.   Thread.currentThread().sleep(1500);
  5. }catch(InterruptedException ie) {
  6.   // ignore
  7. }
  8. obj.stop();
  9. System.out.println(obj); 


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

  0h:0m:1s:502ms 

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


责任编辑:lss
  相关新闻
【JAVA基础】JDBC连接DB2数据库详解
浅析J2EE应用服务器中间件
J2EE技术-漫谈EJB在Java中的应用
【J2EE综合】——使用JMS队列
J2EE探索者:用JMS进行企业消息传递
把您从麻烦中解脱的JNDI在J2EE中的角色
J2SE:六大代码问题检验你的Java知识
J2EE平台WEB组件开发如何使用定制标签
专家讲述J2EE中的多字节字符的处理
基于J2EE架构的模拟考试系统
J2EE Frameworks介绍
“快”在细节 J2EE程序的性能优化技巧
【JAVA基础】JDBC连接DB2数据库详解
J2EE持久层框架-JDO 2.0 最终投票通过
J2EE中使用EntityBean和JDO的优缺点分析
J2EE WEB-Tomcat5.5.9中文问题解决方案
加快利用J2EE部署CRM BEA和Siebel共推SOA
Win2000 Server下安装j2ee
开发完整J2EE解决方案的八个步骤
论J2EE开发Web应用程序中的安全认证机制
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号