今天做了一个关于Webservice的测试,测试的目的是向服务器获取1W条用户信息(XML格式),本来打算做1W、5W、10W条的测试,但是在1W条的时候就卡住了。生成数据竟然用了将近半个小时,郁闷!大家帮看一下啊!
不过也好,也暴露了一些问题,比如:Webservice超时、海量数据(XML)的解析
package cn.com.javaeye;
import java.util.Date;
/**
* <br>
*文件名:Test.java<br>
*@author dongliwei<br>
*版本:<br>
*描述:<br>
*创建时间:Apr 2, 2009 6:16:34 PM<br>
*文件描述:<br>
*修改者:<br>
*修改日期:<br>
*修改描述:<br>
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
long begin = new Date().getTime();
String xml = getXML(1);
long end = new Date().getTime();
System.out.println("生成数据共耗时:" + (end-begin) + "毫秒");
}
/**
* 获取用户
* @param count 单位:万
* @return
*/
public static String getXML(int count){
count = count*10000;
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+"<users>";
for(int i = 0 ; i < count;i++){
xml += "<user>"
+"<id>001</id>"
+"<name>zhangsan</name>"
+"<empno>086001</empno>"
+"<password>123456</password>"
+"<mail>zhangsan@sina.com</mail>"
+"<mobile>13733027580</mobile>"
+"<address>北京市海淀区</address>"
+"<sex>男</sex>"
+"<organise>012</organise>"
+"<role>1,2,3</role>"
+"<group>1,5</group>"
+"</user>";
//System.out.println("生成" + (i+1) + "条数据");
}
xml += "</users>";
return xml;
}
}
经metadmin的指点,使用StringBuffer,就是不一样啊,仅仅用了239毫秒,在此谢过了!下面是修改过的代码
package cn.com.javaeye;
import java.util.Date;
/**
* <br>
*文件名:Test.java<br>
*@author dongliwei<br>
*版本:<br>
*描述:<br>
*创建时间:Apr 2, 2009 6:16:34 PM<br>
*文件描述:<br>
*修改者:<br>
*修改日期:<br>
*修改描述:<br>
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
long begin = new Date().getTime();
String xml = getXML(1);
long end = new Date().getTime();
System.out.println("生成数据共耗时:" + (end-begin) + "毫秒");
}
/**
* 获取用户
* @param count 单位:万
* @return
*/
public static String getXML(int count){
count = count*10000;
StringBuffer xml = new StringBuffer();
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<users>");
for(int i = 0 ; i < count;i++){
xml.append("<user>");
xml.append("<id>001</id>");
xml.append("<name>zhangsan</name>");
xml.append("<empno>086001</empno>");
xml.append("<password>123456</password>");
xml.append("<mail>zhangsan@sina.com</mail>");
xml.append("<mobile>13733027580</mobile>");
xml.append("<address>北京市海淀区</address>");
xml.append("<sex>男</sex>");
xml.append("<organise>012</organise>");
xml.append("<role>1,2,3</role>");
xml.append("<group>1,5</group>");
xml.append("</user>");
System.out.println("生成" + (i+1) + "条数据");
}
xml.append("</users>");
return xml.toString();
}
}
分享到:
相关推荐
生物流体力学.人体循环系统.钱德兰
一种简单超临界二氧化碳布雷顿循环matlab代码,计算循环效率功率和耗功输出功
viewpage+fragment 自动循环 手动循环
C/C++经典循环章节,练习题循环
C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言循环习题C语言...
一个简单的sql循环语句脚本
使用 Vlc.DotNet.Forms,实现自动循环播放多个视频文件
循环应力与循环应变的基本原理.pdf
1000个数循环1、 产生1000个0-100的随机数,并将随机数的变化规律在图形显示框中表示出来,且求出这1000个随机数的平均数(循环、移位寄存器)。
就像这个例子:如果你从最左边的数字开始(在这个例子中是8)向右数最左边这个数(如果数到了最右边就回到最左边),你会停止在另一个新的数字(如果停在一个相同的数字上,这个数就不是循环数).就像: 8 1 3 6 2 从最左边...
让窗体中的字体循环变化让窗体中的字体循环变化让窗体中的字体循环变化让窗体中的字体循环变化
下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而...
通过FME2018创建循环的模板,包含单重循环和双重循环,博主在博客中详细讲解了循环的创建过程和细节,因此配合博文食用更佳。
在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环 结构体内的每一行,使用 \ 作为改行的行首关键字。对于循环中的变量,可以在 IN 关键字后给出所有变 量,也可以从一...
kettle设置循环变量,控制循环作业;kettle设置循环变量,控制循环作业.
Delphi 跳出循环的几种方法Delphi 跳出循环的几种方法 我常用的几种方法 希望大家看看 那个是大家常用的而且比较不错的 以下是引用片段: Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体 abort: ...
MATLAB工具箱大全-将多重循环转为单重循环-For-Each
以后持续更新,这个是织梦的循环嵌套,主要是做企业站的产品列表循环读取
Unity无限循环列表demo
一个简单的死循环,初学者可以借鉴一下,还凑合。