服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

一个计时类

 


package  sony.utils;

import  java.util.*;
import  javax.servlet.jsp.*;
/**
*  一个计时类。
*  创建日期:(2000-11-6  13:09:38)
*  作者:sonymusic(sonymusic@china.com)
*/
public  class  timing{
private  arraylist  namearray=new  arraylist();
private  arraylist  timearray=new  arraylist();
private  javax.servlet.jsp.jspwriter  out;
private  boolean  injsp=false;
/**
*  这个构造器是在java中用的。
*/
public  timing()  {
super();
this.injsp=false;
}
/**
*  timing  构造,这个构造 器是在jsp中用的。
*/
public  timing(javax.servlet.jsp.pagecontext  pagecontext)  {
super();
this.out=pagecontext.getout();
this.injsp=true;
}
/**
*  此处插入方法说明。
*  创建日期:(2000-11-6  13:40:36)
*  @param  name  java.lang.string
*/
public  void  add(string  name)  {
if(name==null  //  name.length()==0)  name="default";
//if(name.length()>7)  name=name.substring(0,7);
namearray.add(name);
timearray.add(calendar.getinstance());
}
/**
*  这里是在java中用法。
*  创建日期:(2000-11-6  14:39:43)
*  @param  args  java.lang.string[]
*/
public  static  void  main(string[]  args)  {
timing  time=new  timing();
time.add("start");
random  ran=new  random();
int  i=0,j=0;
for(i=0;i<10000000;i++)
j+=ran.nextint();
time.add("after  100");
for(i=0;i<100000;i++)
j+=ran.nextint();
time.add("after  100000");
for(i=0;i<100000;i++)
j+=ran.nextint();
time.add("after  100000");
time.show();
}
/**
*  此处插入方法说明。
*  创建日期:(2000-11-6  13:43:24)
*/
public  void  show()  {
if(injsp)
showinjsp();
else
showinjava();

}
/**
*  此处插入方法说明。
*  创建日期:(2000-11-6  13:46:06)
*/
private  void  showinjava()  {
if(namearray.isempty()){
system.out.println("尚未增加计时点!");
return;
}
calendar  oldcal=null,cal=null,firstcal;
//=calendar.getinstance()
string  name;
firstcal=(calendar)timearray.get(0);
system.out.println("序号/t/t名称/t/t/t/t时间/t/t/t/t耗时(秒)");
for(int  i=0;i<namearray.size();i++){
name=(string)namearray.get(i);
cal=(calendar)timearray.get(i);
system.out.print(i+1);
system.out.print("/t/t/t");
system.out.print(name+"/t/t/t/t");
system.out.print(cal.get(calendar.hour_of_day)+":"+cal.get(calendar.minute)+":"+cal.get(calendar.second)+"."+cal.get(calendar.millisecond));
system.out.print("/t/t/t/t");
if(oldcal==null){
system.out.println("无");
}
else{
long  difftime=cal.gettime().gettime()-oldcal.gettime().gettime();
system.out.println((double)difftime/1000);
}
oldcal=cal;
}
system.out.println("");
if(namearray.size()==1){
system.out.println("只增加了一个计时点,无法统计时间!");
}
else{
long  difftime=oldcal.gettime().gettime()-firstcal.gettime().gettime();
system.out.println("总计耗时:  "+(double)difftime/1000+"  秒");
}
}
/**
*  此处插入方法说明。
*  创建日期:(2000-11-6  13:57:56)
*/
private  void  showinjsp()  {
try  {
if  (namearray.isempty())  {
return;
}
calendar  oldcal  =  null,  cal  =  null,  firstcal;
string  name;
long  difftime;
firstcal  =  (calendar)  timearray.get(0);
system.out.println("序号/t/t名称/t/t/t/t时间/t/t/t/t耗时(秒)");
string  str  =  "";
str  +=  "<table  width=/"400/"  border=/"1/"  cellspacing=/"0/"  cellpadding=/"0/">";  
str  +=  "<tr><td>序号</td><td>名称</td><td>时间</td><td>耗时(秒)</td></tr>";
for  (int  i  =  0;  i  <  namearray.size();  i++)  {
str  +=  "<tr>";
name  =  (string)  namearray.get(i);
cal  =  (calendar)  timearray.get(i);
str  +=  "<td>";
str  +=  i  +  1;
str  +=  "</td>";
str  +=  "<td>"  +  name  +  "</td>";
str  +=  "<td>"
+  cal.get(calendar.hour_of_day)
+  ":"
+  cal.get(calendar.minute)
+  ":"
+  cal.get(calendar.second)
+  "."
+  cal.get(calendar.millisecond)
+  "</td>";  
if  (oldcal  ==  null)  {
//system.out.println("无");
str  +=  "<td>无</td>";
}  else  {
difftime  =  cal.gettime().gettime()  -  oldcal.gettime().gettime();
str  +=  "<td>"  +  (double)  difftime  /  1000  +  "</td>";
}
oldcal  =  cal;
str  +=  "</tr>";
}
str  +=  "<tr><td  colspan=/"4/">";

if  (namearray.size()  ==  1)  {
str  +=  "只增加了一个计时点,无法统计时间!";
}  else  {
difftime  =  oldcal.gettime().gettime()  -  firstcal.gettime().gettime();

str  +=  "总计耗时:  "  +  (double)  difftime  /  1000  +  "  秒";
}
str  +=  " </td></tr>";
str  +=  "</table>";
out.println(str);
}  catch  (java.io.ioexception  e)  {
}

}
}


以下是在jsp中的用法

<%@  page  contenttype="text/html;charset=gb2312"%>
<%@  page  import="sony.utils.*,java.util.*"%>
<html>
<head>
<title>untitled</title>
</head>

<body>
<%
timing  time=new  timing(pagecontext);
time.add("start");
random  ran=new  random();
int  i=0,j=0;
for(i=0;i<1000000;i++)
j+=ran.nextint();

time.add("after  100");
for(i=0;i<100000;i++)
j+=ran.nextint();
time.add("after  100000");
for(i=0;i<100000;i++)
j+=ran.nextint();
time.add("after  100000");

time.show();
%>
</body>
</html>

扫描关注微信公众号