当前位置: 代码迷 >> Java Web开发 >> 应用Struts框架,上载大附件,速度奇慢,为什么
  详细解决方案

应用Struts框架,上载大附件,速度奇慢,为什么

热度:667   发布时间:2016-04-17 15:49:04.0
使用Struts框架,上载大附件,速度奇慢,为什么?
使用Struts+Hibernate+Spring框架搭建系统,该系统的主要功能就是上载附件保存到数据库中,经过反复测试,发现瓶颈在Struts这边。

上载100M的数据,从页面点击“Upload”按钮,到进入Action,大概需要18分钟,但是从Action开始处理数据,到最后保存到数据库中大概只用了3分钟。

分析原因,是页面中 <form   method= "POST "   enctype= "multipart/form-data "     ....>   ,点击“Upload”后,Struts首先做的事情是将页面上的元素与Form对应起来,使用映射将Form中的变量赋予实际的值。在这个过程中,我推测Struts将大附件整体遍历一遍,从应用服务器到客户端建立一个流,解析附件的相关信息,这个过程花费了大把时间,所以从页面点击“Upload”后,到进入Action开始处理数据之前要花费18分钟的时间。

我分析的可能不对,请帮忙分析一下,有没有提高效率的方法?


分数不够,可以再加,呵呵,务必好人好到底,把问题给解决掉!




------解决方案--------------------
我想应该是文件从client通过http上传到服务器花的时间太多吧?
你可以尝试把文件弄小一点
struts也不会慢的
------解决方案--------------------
提高效率大概要研究上传组件了
把struts的上传组件优化再优化

比如做的象讯雷下载那么快
------解决方案--------------------
我和楼上的想法有点不同,文件通过http传到服务器应该是在action里面进行处理的,所有我倾向楼主的观点,假如现象是正确的话,那么就是在View端和File文本框匹配生成像应的附件发费的时间比较多把
------解决方案--------------------
多线程上传要不要试试,
http://www.mob8.cn/baby/javaupload.rar
这是我在http://community.csdn.net/Expert/topic/5401/5401563.xml?temp=.3675501这个贴上帮人家解决的一个问题,只需要传一个文件路径和文件名过来就可以多线程上传了,不需要enctype= "multipart/form-data "的,我想你的问题可能就出在这个enctype= "multipart/form-data "上
------解决方案--------------------
100M的东西应该是有点慢的吧,你看用油箱传附件如果上了10M都要好长时间!

讯雷那么快应该是采用了多线程同时下载...
------解决方案--------------------
為什么不考慮下硬件呢。學習中
  相关解决方案