【J2SE综合】使用StopWatch类来计时


所属类别:Java

文章作者:佚名

特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!


调试器是一个繁重的东西,使用调试器并不总是最有效的方法;有时,你可能想对代码进行一些小的调试和跟踪。一个简单的StopWatch类就是提供了一种好的计时解决方案。packagecom.generationjava.test;/***在调试或者测试情形下需要计时非常有用*/publicclassStopWatch{staticpublicintAN_HOUR=60*60*1000;staticpublicintA_MINUTE=60*1000;privatelongstartTime=-1;privatelongstopTime=-1;/***启动秒表*/publicvoidstart(){this.startTime=System.currentTimeMillis();}/***停止秒表*/publicvoidstop(){this.stopTime=System.currentTimeMillis();}/***重置秒表*/publicvoidreset(){this.startTime=-1;this.stopTime=-1;}/***分割时间*/publicvoidsplit(){this.stopTime=System.currentTimeMillis();}/***移除分割*/publicvoidunsplit(){this.stopTime=-1;}/***获得秒表的时间,这个时间或者是启动时和最后一个分割时刻的时间差,*或者是启动时和停止时的时间差,或者是启动时和这个方法被调用时的差*/publiclonggetTime(){if(stopTime!=-1){return(System.currentTimeMillis()-this.startTime);}else{returnthis.stopTime-this.startTime;}}publicStringtoString(){returngetTimeString();}/***取得String类型的时间差*形式为小时,分钟,秒和毫秒*/publicStringgetTimeString(){inthours,minutes,seconds,milliseconds;longtime=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;returnhours+"h:"+minutes+"m:"+seconds+"s:"+milliseconds+}

与大块的代码相比,它是非常简单的。但是它可重用而毫不复杂。因此StopWatch类的使用也是非常简单的:StopWatchobj=newStopWatch();obj.start();try{Thread.currentThread().sleep(1500);}catch(InterruptedExceptionie){//ignore}obj.stop();System.out.println(obj);

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

0h:0m:1s:502ms

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

相关信息

· Redhat Linux Enterprise 4.0绑定网卡

· 130个漂亮CSS布局站点参考

· Emacs与visualstudio结合

· 病毒是什么、病毒的症状








....

15417 75529