web应用中下载引发的性能问题,SSH框架. 180

应用的是ssh框架,里面的下载是这样实现的:连接对应的ftn服务器下载文件到内存的byte数组中。把byte数组通过这种形式返回给客户端@Result(name="dow... 应用的是ssh框架,里面的下载是这样实现的:
连接对应的ftn服务器下载文件到内存的byte数组中。
把byte数组通过这种形式返回给客户端
@Result(name = "download", type="stream",params={ "contentType","application/octet-stream", "inputName","inputStream", "contentDisposition","attachment;filename=${fileName}", "bufferSize","4096"})})
这个inputStream是这样定义的:
public InputStream getInputStream(){ return new ByteArrayInputStream(filebuf);//filebuf就是那个内存中的byte数组。 }
本来是没什么问题的,但是应用正式上线之后在客户端点击下载越来越慢,有的时候要等好几分钟才出来下载提示框。尝试着把应用重启后又恢复正常了。
我猜测是内存没有释放,我想问一下客户端在点击下载时,出来下载提示框之后,如果客户端一直不点击保存按钮,那么服务器端的那个下载的输出流是不是一直保持那个在内存中的状态?(是否是因为这个原因导致内存占满,性能降低?)
如果出来下载提示框之后直接alt+f4关闭页面,服务器端的输出流又会怎样呢?
展开
 我来答
dllgdx_2000
2013-10-18 · TA获得超过922个赞
知道小有建树答主
回答量:1202
采纳率:0%
帮助的人:754万
展开全部
建议在上线的服务器上
在下载代码的重要步骤上
加上时间的输出log
看看到底是哪步慢了
找到具体地点
否则都是猜测 浪费时间
--------------------
如果后台整体运行都很快
就是返回到前台慢了
再看看服务器硬盘的情况
ssh下载上传都要用到临时空间
而频繁使用造成数据量过大
是不是硬盘没地方了
而你的情况又是刚开始不慢
越来越慢 估计就是这方面的原因居多
------------
代码方面就是数据流使用完什么的
都要及时关闭
疯希
2013-10-18 · TA获得超过540个赞
知道小有建树答主
回答量:216
采纳率:100%
帮助的人:168万
展开全部
你都自己知道可能存在问题的业务场景,何不自己亲自动手测一把?用的是sun VM的话,把Jconsole或VisualVM开着,看监控情况,必要的时候当个堆或线程快照下来,使用工具分析。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39d817d
2013-11-19 · TA获得超过999个赞
知道小有建树答主
回答量:899
采纳率:0%
帮助的人:618万
展开全部
为什么是bytearrayinputstream不是fileinputstream呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式