最近我们的网站项目,有一段时间,服务器运行到一定的时候时,就会出现cpu占用率非常大,而且内存消耗也非常大.(当然服务器的配置还是比较高的).
经过很多代码的优化和重构,还是没有解决这个问题.或许没有找到根本原因.
其中
1.我们有把单例类重新有换成普通的类.直接new 出一个实例.而不是调用一个静态方法去获得实例.(在网上搜索资料发现,单例模式用的不好的话,确实会有内存泄露的
情况.仔细分析了一下代码,如果很多用户同时并发访问的时候,确实会出现这种内存泄露和数据错误的情况).
2.有把某些对象(包括String类型引用)在finally置为null的.尽管如此,还是发现内存有缓慢泄露的情况,cpu任然占用很高.
3.后来我们用Jprofeil工具测试代码(该工具,可以测试具体调用某个方法时候,内存的使用情况和cpu的占用率).结果发现我们网站上传功能出现很大的问题.
我们使用的上传组件:smartUpload.如果传大一点点的文件(我们网站限制为2M),或者网速不行并且用户多次点击上传按钮的时候,smartUpload组件上传会使得cpu占用率很 高而且消耗内存.
最终在网上搜索了commons-fileupload和smartUpload区别.及其相应的优点缺点.后来我们改用了commons-fileupload组件.
并且把上传按钮,再点击之后就让它disabled,以免用户多次点击上传按钮..
服务器运行了一段时间,太神奇了.内存消耗率超级少.
真是太高兴啦....
分享到:
相关推荐
jsp上传控件-smartupload完美版: 经过重新修改编译后,有4大特点: 1.解决中文上传乱码问题 2.解决中文下载乱码问题 3.解决无法自动生成文件夹问题 4.解决长时间运行内存泄漏问题 说明:...
SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件
使用SmartUpload 实现文件上传,
java文件上传(smartUpload),提供使用Demo
smartupload组件实现文件上传功能
使用jspSmartUpload实现文件上传下载,包含SmartUpload方法注解、上传示例及组件包
这是我用SmartUpload组件写的一个文件上传的小例子,解压缩后可直接导入到MyEclipse(Eclipse)中运行。这肯定不是文件上传的最好方案,仅供有兴趣的朋友们学习参考!
自己通过smartupload提供的类包实现的文件上传的源码,分享一下,希望对大家有帮助
简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload
smartupload是一个很好的文件上传工具,就是中文文件乱码。我已经解决了中文乱码的问题!一个多文件上传的例子,使用了smartupload。上传后的文件名返回给父页面!
java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的...
JspSmartUpload实现多文件上传
利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。 3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合...
NULL 博文链接:https://systemxgl.iteye.com/blog/267472
这个文件是用upload.html和do_upload.jsp两个文件实现的文件上传功能,有点瑕疵就是,中文乱码还没改正,这个还得好好看看smartupload,反正也就4,5个java文件,还有就是上传的文件因为用的是Eclipse,部署时用的...
批量上传图片文件 smartupload
jspSmartUpload实现文件上传下载
文件上传组件JspSmartUpload 文件上传组件JspSmartUpload
使用smartupload完成文件的上传,普通表单域处理,文件下载和文件批量下载
通过一个上传文件的Demo来演示如何使用SmartUpload上传文件和普通表单