对短链接生成API的简要性能测试:
文章只有部分代码,完整代码可移步CSDN下载 :http://download.csdn.net/detail/litter_fisher/9926266 或者github:https://github.com/Anthoneey/shortUrl。
分析结果先呈上:
10条 | 100条 | 500条 | 1000条 | 2000条 | |
TestNi2 | 0 | 3 | 20 | 33 | 78 |
TestSuo | 0 | 3 | 19 | 37 | 78 |
Test980 | 0 | 4 | 26 | 50 | 104 |
TestWeibo | 0 | 6 | 43 | 76 | 150 |
TestNowapi | -- | -- | -- | -- | -- |
由于Nowapi免费用户每分钟有访问限制,所以不再提供数据,上述数据表示各种短链接API在单线程调用10次,100次,500次,1000次调用并返回短链接地址所需要的时间。
TestSuo.java 测试代码如下:
package space;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class TestSuo extends Thread{
static String actionUrl = "http://suo.im/api.php";
static String url = "https://www.baidu.com/";
@Override
public void run() {
long curtime = System.currentTimeMillis();
int k = 0;
for(int i = 0; i < 20; i++) {
// System.out.println("TestNowapi:"+i+":"+getUrl(url+"i?"+i));
String ret = getUrl(url+"i?"+i);
if(ret==null || "".equals(ret)) k++;
}
System.out.println("TestSuo耗时毫秒数:"+(System.currentTimeMillis()-curtime)/1000+"。生成短网址失败个数:"+k);
}
public String getUrl(String longUrl) {
String ret = "";
try {
String longUrlSuo = java.net.URLEncoder.encode(longUrl,"utf-8");
String result = HttpRequest.sendGet(actionUrl, "format=json&url="+longUrlSuo);
if(result==null || "".equals(result)){
return "";
}
JSONObject json = JSON.parseObject(result);
return json.get("url").toString();
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}
其他接口可参考TestSuo.java, 也可以移步下载源码,地址请查看文章开头说明。
调用的主类MainTest.java:
package space;
public class MainTest {
public static void main(String[] args) {
TestSuo ts = new TestSuo();
ts.start();
TestWeibo tw = new TestWeibo();
tw.start();
Test980 t9 = new Test980();
t9.start();
TestNi2 tn2 = new TestNi2();
tn2.start();
//由于Nowapi接口服务器对免费账号接口调用有限制,此处不再进行测试
/*TestNowapi tn = new TestNowapi();
tn.start();*/
}
}