`
Mojarra
  • 浏览: 128741 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

文件上传的秘密(三)性能和稳定性上的衡量

JVM 
阅读更多

文件上传的秘密系列之一, http://mojarra.iteye.com/blog/1412497

 

文件上传的秘密系列之二, http://mojarra.iteye.com/blog/1534821

 

对照著名的Apache Common File Upload这个组件, 做一下对比。选取两组文件,每组文件各包含三张照片。

第一组中三张照片的大小是,1.7M、1.7M、1.2M

第二组中三张照片的大小是,574K、588K、384K。

每组文件分别上传20次。计时每次接收文件所用的时间,单位ms.

 

测试的环境就是本机,配置为i5 2.3G/内存4G/硬盘5400转128G。 JDK 6.0.23 For MAC, 服务器Tomcat 7.0.21。

同一web app下,用Common File Upload和本系列中前面封装的文件上传类FileUploadParser分别写一个Servlet,保存文件到指定的目录中。测试中,长传文件使用FireFox 12英文版本。

 

 

第一组数据样本,FileUploadParser单次接收最短耗时36ms,  Apache的Common File Upload单次接收最短耗时67ms,FileUploadParser单次接收最长耗时161ms,Common File Upload单次接收最长耗时275ms。

 

5个最短的FileUploadParser单次接收耗时分别是36ms、36ms、36ms、37ms和37ms,5个最长的耗时是161ms、108ms,94ms、77ms和73ms。

从样本数据中看,Common File Upload对照数据是,5次最短耗时是67ms、69ms、72ms、73ms和73ms,5个最长的耗时是275ms、216ms,204ms、184ms和157ms。

 

cost: 161 
cost: 36 
cost: 37 
cost: 55 
cost: 41 

cost: 37 
cost: 39 
cost: 77 
cost: 108 
cost: 67 

cost: 39 
cost: 36 
cost: 38 
cost: 36 
cost: 53 

cost: 37 
cost: 37 
cost: 73 
cost: 94 
cost: 39 


Apache Common File Upload costs: 69 
Apache Common File Upload costs: 216 
Apache Common File Upload costs: 78 
Apache Common File Upload costs: 275 
Apache Common File Upload costs: 157 

Apache Common File Upload costs: 146 
Apache Common File Upload costs: 204 
Apache Common File Upload costs: 76 
Apache Common File Upload costs: 107 
Apache Common File Upload costs: 132 

Apache Common File Upload costs: 104 
Apache Common File Upload costs: 73 
Apache Common File Upload costs: 106 
Apache Common File Upload costs: 73 
Apache Common File Upload costs: 72 

Apache Common File Upload costs: 87 
Apache Common File Upload costs: 74 
Apache Common File Upload costs: 67 
Apache Common File Upload costs: 88 
Apache Common File Upload costs: 184 

 

 

 第二组数据样本,FileUploadParser单次接收最短耗时13ms,  Apache的Common File Upload单次接收最短耗时16ms,FileUploadParser单次接收最长耗时50ms,Common File Upload单次接收最长耗时107ms。

 

5个最短的FileUploadParser单次接收耗时分别是13ms、13ms、13ms、14ms和14ms,5个最长的耗时是50ms、36ms,19ms、17ms和17ms。

从样本数据中看,Common File Upload对照数据是,5次最短耗时是16ms、18ms、27ms、29ms和30ms,5个最长的耗时是107ms、80ms、75ms、61ms和43ms。

 

 

cost: 36 
cost: 14 
cost: 17 
cost: 13 
cost: 17 
cost: 14 
cost: 13 
cost: 14 
cost: 16 
cost: 14 
cost: 13 
cost: 16 
cost: 14 
cost: 13 
cost: 50 
cost: 15 
cost: 14 
cost: 15 
cost: 16 
cost: 19 


Apache Common File Upload costs: 107 
Apache Common File Upload costs: 27 
Apache Common File Upload costs: 42 
Apache Common File Upload costs: 43 
Apache Common File Upload costs: 41 
Apache Common File Upload costs: 61 
Apache Common File Upload costs: 80 
Apache Common File Upload costs: 45 
Apache Common File Upload costs: 39 
Apache Common File Upload costs: 29 
Apache Common File Upload costs: 32 
Apache Common File Upload costs: 61 
Apache Common File Upload costs: 16 
Apache Common File Upload costs: 30 
Apache Common File Upload costs: 38 
Apache Common File Upload costs: 40 
Apache Common File Upload costs: 75 
Apache Common File Upload costs: 38 
Apache Common File Upload costs: 40 
Apache Common File Upload costs: 18 
 

从测试取得的样本数据分析,无论是最小时间、还是样本数据的方差,最短耗时的方差、最长耗时的方差,Common File Upload除了在第二组数据中的最短单次耗时小幅落后外,其他的指标终大幅落后FileUploadParser. 而且,随着上传文件大小的增加,落后的幅度越大。

 

 

注:测试用的文件上传在本博客的附件中。

 

<原创内容,版权所有,如若转载,请注明出处,不胜感谢!仪山湖>

分享到:
评论
3 楼 yu_duo 2012-10-10  
这太高深了~~
2 楼 Mojarra 2012-07-08  
您是个细心的读者,这是很久以前的测试代码,最新的30~40%的领先是基于去掉InputStream/OutputSteam读写转化这个步骤测试的.


/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String path = System.getProperty("user.home") + "/acf/";
		
		
		long s = System.currentTimeMillis();
		
		// Create a factory for disk-based file items
		FileItemFactory factory = new DiskFileItemFactory();

		// Create a new file upload handler
		ServletFileUpload upload = new ServletFileUpload(factory);

		// Parse the request
		try {
			List<FileItem> items = upload.parseRequest(request);
			for (FileItem e : items) {
				e.write(new File(path + e.getName()));
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		System.out.format("Apache Common File Upload costs: %d %n", System.currentTimeMillis() - s);
		
	}
1 楼 wendal 2012-07-06  
你的示例, Common File Upload 还包含了Inputstream--> File的额外转换时间呢

相关推荐

    论文研究-一种新的MANET节点—链路稳定度模糊评估模型.pdf

    该模型通过对位置临界点和速度进行综合模糊建模, 用模糊值精确衡量MANET中节点与链路的稳定性高低。理论和模拟分析证明了该模型能更有效地对MANET的稳定性和生存能力进行定量评估。在该模型下, MANET中节点与链路在...

    SenC(n=1-8)团簇稳定性和金属性的研究

    SenC(n=1-8)团簇稳定性和金属性的研究,岳莉,吴位巍,本文利用密度泛函理论框架下的BLYP交换关联函数对BenC (n=1-8)团簇稳定性和金属性进行较系统的研究。结果表明,C原子的掺杂不仅明显提�

    衡量超级计算机的性能指标

    这是一篇论述文章,主要讨论了衡量超级计算机性能指标。希望对大家有用。。。。

    回采巷道围岩稳定性预测模型及其成熟度

    定义出衡量回采巷道围岩稳定性预测模型的精度度量P和非均等代价下的代价度量E,并以成熟度度量M作为评价模型性能的准则。结果表明有多组λ1和λ2使得回采巷道围岩稳定性预测模型的成熟度度量达到最大值M=1,性能较稳定...

    应用层组播稳定性提高技术综述 PDF

    文中概述了应用层组播的数据传输模型、组播树构造算法和协议性能评价标准,阐述了应用层组播稳定性问题产生的原因,提出了衡量应用层组播稳定性的标准,分析了影响应用层组播稳定性的因素,根据影响因素将应用层组播稳定...

    衡量标准模型的意外对称性,以及对风味异常的影响

    如果标准模型(SM)的费米子含量增加了三个手性SM单重态,则可以一致地衡量这些对称性的几乎任意线性组合(以及全局超电荷的一部分)。 在SM的U(1)扩展的这一框架内,人们通常希望在带电荷的轻子中出现风味非通用...

    基于MATLAB_Simulink的车辆转向稳定性的仿真研究.pdf

    汽车的操纵稳定性是衡量汽车安全性最基本的指标之一,影响汽车行驶稳定性的基本因素主要有横摆角速度与质心侧偏角,将汽车简化为二自由度模型,建立关于横摆角速度与质心侧偏角的转向微分方程。基于MATLAB/Simulink软件...

    衡量计算机性能的主要标准

    计算机性能的主要指标。 经典计算机理论。包括计算机CPU、存储、IO等各方面

    电源环路稳定性评价方法.pdf

    电源环路稳定性评价方法pdf,环路稳定性评价指标:衡量开关电源稳定性的指标是相位裕度和增益裕度。同时穿越频率,也应作为一个参考指标。(1) 相位裕度是指:增益降到0dB时所对应的相位。(2) 增益裕度是指:相位为0...

    水泥基注浆材料浆液稳定性及其析水规律试验

    为了探索不同配比下浆液的稳定性能及其沉积析水规律,改进了现有浆液静置析水试验装置,进行了浆液稳定性沉积析水试验,获得了水固比(0.6︰1~3︰1)、粉煤灰掺量(0%~90%)、水玻璃掺量(0~12%)单因素控制下的浆液样本在...

    如何衡量系统性能

    软件性能测试之如何评价系统性能,很多人并不清楚的。

    安全性、可靠性和性能评价

    3.3 安全性、可靠性和性能评价 3.3.1主要知识点 了解计算机数据安全和保密、计算机故障诊断与容错技术、系统性能评价方面的知识,掌握数据加密的有关算法、系统可靠性指标和可靠性模型以及相关的计算方示。 3.3...

    一种工具,可随着时间的推移衡量您自己在网络上与第三方的接触情况_JavaScript_代码_相关文件_下载

    特定第 3 方的普遍性是根据该第 3 方在您访问的网页上的使用频率来衡量的。这意味着第 3 方的普遍性将代表您的浏览历史,以及第 3 方是否在您访问的页面上被阻止。 更多详情、使用方法,请下载后阅读README.md文件

    过程品质衡量方式的演进文件

    过程品质衡量方式的演进文件

    计算机处理器性能的衡量.pdf

    计算机处理器性能的衡量.pdf

    衡量网站性能的工具AppSpeedIndex.zip

    AppSpeedIndex 是一个用来统计打开页面需要多长时间的工具,用来衡量网站性能。通常以毫秒为单位统计时间。通常会从这几个维度来衡量网站性能:加载时间、开始渲染到结束渲染的时间、对比同类型网站的渲染时间等。 ...

    性能可靠性稳定性分析 (1)1

    3、吞吐量的计算公式指单位时间内系统处理用户的请求数从业务角度看,吞吐量可以用:请求数/秒、页面数/秒、人数/天或处理业务数/小时等单位来衡量从网络角度看,吞吐

    衡量通信系统的主要性能指标

    衡 量 通 信 系 统 的主要性能指标

Global site tag (gtag.js) - Google Analytics