首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

几种操作 Feed 的 API 的示例及其比较 -5 Main 函数里面的调用

几种操作 Feed 的 API 的示例及其比较 -5 Main 函数里面的调用

Main 函数里面的调用清单 6 列出了在 main 函数里面调用上述各方法实现的 Feed Query。
清单 6. main 函数调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package main;

import java.io.InputStream;

public class Main {

  public static void main(String[] args) {
   
String xpathExpr = "atom:content/row:row/row:Customer_Name = 'Ford'";
  InputStream is = Main.class.getResourceAsStream("customerlist.xml");
  //InputStream is = Main.class.getResourceAsStream("largeCustomeList.xml");
  long starttime = 0;
  long endtime = 0;
  IFilterFeed filterfeed = null;
  if(args[0].equalsIgnoreCase("dom")){
   
System.out.println("filtering feed using DOM API");
  starttime = System.currentTimeMillis();
  filterfeed = new xml.dom.DOMFilterFeed();
  endtime = System.currentTimeMillis();
  System.out.println("filtering feed using DOM API time-consuming: "
   + (endtime-starttime) + "ms" );
   
  } else if(args[0].equalsIgnoreCase("abdera")){
   
System.out.println("filtering feed using abdera API");
  starttime = System.currentTimeMillis();
  filterfeed = new xml.Abdera.AbderaFilterFeed();
  endtime = System.currentTimeMillis();
  System.out.println("filtering feed using abdera API time-consuming: "
+ (endtime-starttime) + "ms" );
   
                  
} else if(args[0].equalsIgnoreCase("xbean")){
   
System.out.println("filtering feed using xbean API");
  starttime = System.currentTimeMillis();
  filterfeed = new xml.xbean.XbeanFilterFeed();
  endtime = System.currentTimeMillis();
  System.out.println("filtering feed using xbean API time-consuming: "
+ (endtime-starttime) + "ms" );
   
} else if(args[0].equalsIgnoreCase("xslt")){
   
  System.out.println("filtering feed using XSLT API");
  starttime = System.currentTimeMillis();
  filterfeed = new xml.xslt.XSLTFilterFeed();
  endtime = System.currentTimeMillis();
  System.out.println("filtering feed using XSLT API time-consuming: "
+ (endtime-starttime) + "ms" );
   
} else {
  throw new RuntimeException("unsupported xml filter");
  }

  filterfeed.filter(is, xpathExpr);
  }
}




可以在命令行运行或者在 IDE 里面运行 main 函数。如果是在 IDE 里面运行,请参照图 1 进行设置。Main 接受一个参数,可以指定使用哪种 API。通过运行 main,读者可以清楚的看到每种 API 的性能。读者可以自己做一些实验,比如输入不同大小的 feed,比较一下各种 API 对于不同文件大小的性能。
图 1. 在 IDE 里面设置 main 函数运行参数
返回列表