//开始计时
long t1 = System.currentTimeMillis();
System.out.println(t1);
String kind = request.getParameter("resourcetype");  //选择查询的类型
for(Iterator iter = allResource.iterator(); iter.hasNext();) {
item = (ResourceItemBean)iter.next();
for(int j=0; j < keytoken.size(); j++) {//遍历每个token
String token = (String)keytoken.get(j);
 //和关键字相似的bean放入result中
if(item.getKeywords().indexOf(token) != -1) {
if(kind.equals("doc")) { //如果选择的是文档单选框,就将文档资源加入item里
if(item.getKind().equalsIgnoreCase("doc") || item.getKind().equalsIgnoreCase("ppt") || item.getKind().equalsIgnoreCase("pdf")
|| item.getKind().equalsIgnoreCase("xls") || item.getKind().equalsIgnoreCase("txt")) {
result.add(item);

} else if(kind.equals("pic")) { //图片
if(item.getKind().equalsIgnoreCase("png") || item.getKind().equalsIgnoreCase("gif") || item.getKind().equalsIgnoreCase("jpeg")
|| item.getKind().equalsIgnoreCase("bmp") || item.getKind().equalsIgnoreCase("jpg")) {
result.add(item);

} else if(kind.equals("audio")) { //音频
if(item.getKind().equalsIgnoreCase("mp3") || item.getKind().equalsIgnoreCase("wma") || item.getKind().equalsIgnoreCase("wav")
|| item.getKind().equalsIgnoreCase("midi") || item.getKind().equalsIgnoreCase("mid")) {
result.add(item);
}
} else if(kind.equals("video")) { //视频
if(item.getKind().equalsIgnoreCase("avi") || item.getKind().equalsIgnoreCase("wmv") || item.getKind().equalsIgnoreCase("swf")
|| item.getKind().equalsIgnoreCase("rm") || item.getKind().equalsIgnoreCase("asf") ||  item.getKind().equalsIgnoreCase("rmvb")
|| item.getKind().equalsIgnoreCase("mpeg") || item.getKind().equalsIgnoreCase("mpg")) {
result.add(item);
}
} else { //如果选择的是全部单选框或其它不知道的类型,就把他们全加入result
result.add(item);
}
}
}
}
if(result.isEmpty()) { 
forwardStr = "noResult";
} else {
long t2 = System.currentTimeMillis();
System.out.println(t2);
time = Double.toString((t2 - t1) / 1000.0);
System.out.println(time);
//花费的时间
request.setAttribute("executeTime", time);。。
在控制台上打印的t1和t2为什么总是一样的啊??如上述程序的一次打印如下:
1249635205203
1249635205203
0.0
谁知道是怎么回事吗?

解决方案 »

  1.   

    t1 t2之间运行时间太短吧,可能是ms us级的,加个thread 测试下,应该有间隔。
      

  2.   

    System.currentTimeMillis()取得值单位是毫秒,如果这两个时间之间处理小于1毫秒的话,当然执行时间为0。
      

  3.   

    执行时间小于1ms了Iterator iter = allResource.iterator(); iter.hasNext();
    把allResource搞成50000条试一下