SmartUpload缺陷:不能上传大文件,占内存耗CPU

最近我们的网站项目,有一段时间,服务器运行到一定的时候时,就会出现cpu占用率非常大,而且内存消耗也非常大.(当然服务器的配置还是比较高的).
    经过很多代码的优化和重构,还是没有解决这个问题.或许没有找到根本原因.
    其中
         1.我们有把单例类重新有换成普通的类.直接new 出一个实例.而不是调用一个静态方法去获得实例.(在网上搜索资料发现,单例模式用的不好的话,确实会有内存泄露的

情况.仔细分析了一下代码,如果很多用户同时并发访问的时候,确实会出现这种内存泄露和数据错误的情况).
          2.有把某些对象(包括String类型引用)在finally置为null的.尽管如此,还是发现内存有缓慢泄露的情况,cpu任然占用很高.
          3.后来我们用Jprofeil工具测试代码(该工具,可以测试具体调用某个方法时候,内存的使用情况和cpu的占用率).结果发现我们网站上传功能出现很大的问题.
          我们使用的上传组件:smartUpload.如果传大一点点的文件(我们网站限制为2M),或者网速不行并且用户多次点击上传按钮的时候,smartUpload组件上传会使得cpu占用率很 高而且消耗内存.

 

 

最终在网上搜索了commons-fileupload和smartUpload区别.及其相应的优点缺点.后来我们改用了commons-fileupload组件.
      并且把上传按钮,再点击之后就让它disabled,以免用户多次点击上传按钮..

服务器运行了一段时间,太神奇了.内存消耗率超级少.

 

真是太高兴啦....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值