最近我们的网站项目,有一段时间,服务器运行到一定的时候时,就会出现cpu占用率非常大,而且内存消耗也非常大.(当然服务器的配置还是比较高的).
经过很多代码的优化和重构,还是没有解决这个问题.或许没有找到根本原因.
其中
1.我们有把单例类重新有换成普通的类.直接new 出一个实例.而不是调用一个静态方法去获得实例.(在网上搜索资料发现,单例模式用的不好的话,确实会有内存泄露的
情况.仔细分析了一下代码,如果很多用户同时并发访问的时候,确实会出现这种内存泄露和数据错误的情况).
2.有把某些对象(包括String类型引用)在finally置为null的.尽管如此,还是发现内存有缓慢泄露的情况,cpu任然占用很高.
3.后来我们用Jprofeil工具测试代码(该工具,可以测试具体调用某个方法时候,内存的使用情况和cpu的占用率).结果发现我们网站上传功能出现很大的问题.
我们使用的上传组件:smartUpload.如果传大一点点的文件(我们网站限制为2M),或者网速不行并且用户多次点击上传按钮的时候,smartUpload组件上传会使得cpu占用率很 高而且消耗内存.
最终在网上搜索了commons-fileupload和smartUpload区别.及其相应的优点缺点.后来我们改用了commons-fileupload组件.
并且把上传按钮,再点击之后就让它disabled,以免用户多次点击上传按钮..
服务器运行了一段时间,太神奇了.内存消耗率超级少.
真是太高兴啦....
分享到:
相关推荐
- 性能优化:对于大文件上传,可能需要考虑分块上传或异步处理以提高性能。 通过这个Demo,开发者可以了解如何在实际项目中使用SmartUpload实现文件上传功能。记得在实际部署时,根据项目需求调整配置,确保文件...
- **内存溢出**:如果上传文件过大,可能导致服务器内存溢出。可以通过设置上传大小限制和优化文件读写策略来避免。 - **文件重名**:多个用户同时上传同名文件时,可能产生冲突。可以添加时间戳或随机字符串作为...
3. **文件大小限制**:可设置上传文件的最大大小,避免服务器资源被大文件占用。 4. **文件存储**:上传的文件可以存储在服务器的指定目录下,也可以存入数据库中。 5. **文件重命名**:自动或手动重命名上传的文件...
SmartUpload文件上传组件是Java Web开发中常用的一种工具,它为开发者提供了方便的文件上传功能。这个小例子展示了如何在JSP(Java Server Pages)环境中使用SmartUpload来处理用户上传的文件。SmartUpload通过简化...
其核心优势在于能够处理大文件上传,同时提供了丰富的API,使得开发者可以方便地进行定制化开发。 1. **工作原理** - 客户端:SmartUpload在HTML表单中利用JavaScript实现文件选择和预览功能。当用户选择文件后,...
在Web应用中,文件上传功能是不可或缺的一部分,而SmartUpload则是一款专门用于处理文件上传的Java库。这个库以其简单易用、功能强大著称,深受开发者喜爱。本文将深入探讨SmartUpload的核心概念、工作原理以及如何...
这个组件支持多文件上传,可以设定上传文件的大小限制,还能处理各种类型的文件格式。通过使用`jspSmartUpload`,开发者可以避免直接操作HTTP请求的复杂性,提高代码的可读性和可维护性。 **1. SmartUpload方法注解...
3. 文件大小限制:开发者可以设置文件大小限制,防止大文件上传导致服务器资源耗尽。 4. 进度反馈:通过JavaScript,SmartUpload 可以在客户端显示上传进度,提升用户体验。 5. 错误处理:SmartUpload 自带错误...
jsp上传控件-smartupload完美版: 经过重新修改编译后,有4大特点: 1.解决中文上传乱码问题 2.解决中文下载乱码问题 3.解决无法自动生成文件夹问题 4.解决长时间运行内存泄漏问题 说明:...
**JSpsmartupload组件**是一个基于Java的上传文件解决方案,主要应用于JSP(Java Server Pages)环境中。这个组件提供了一种简单且强大的方式来处理用户通过网页上传的文件。在标题和描述中提到的,该组件的核心是用...
SmartUpload支持多部分文件上传,可以设置最大文件大小、允许的文件类型,并且提供了保存文件到服务器的方法,以及读取文件内容的功能。 ### 前端表单设计 在前端,文件上传通常通过HTML表单实现。如示例代码所示...
`SmartUpload`组件是一个专门用于处理此类任务的工具,它极大地简化了开发者的工作,使得在JSP环境中实现文件上传和下载变得轻而易举。本文将深入探讨`SmartUpload`组件的使用方法、核心特性以及在实际项目中的应用...
《深入理解JSP SmartUpload上传下载机制》 在Web开发中,文件上传和下载功能是不可或缺的一部分,尤其是在处理用户交互和数据交换时。JSP SmartUpload是一个常用的Java库,专门用于处理文件上传任务,它简化了在JSP...
10. **前端优化**:SmartUpload 还可以利用分块上传、断点续传等技术优化大文件的上传,尤其在网络不稳定或者文件体积较大的情况下,这些优化策略显得尤为重要。 总之,SmartUpload 是一个强大的批量图片上传工具,...
**JspSmartUpload详解** 在Web开发中,文件上传功能是一项常见的需求,尤其是在用户需要提交包含图片、文档等附件的表单时。...但了解JspSmartUpload的工作原理和使用方法,对于理解文件上传的整个过程仍有很大帮助。
SmartUpload是一款功能强大的Java文件上传组件,它在Web开发中被广泛应用,特别是在处理大文件上传、多文件上传以及文件管理方面表现出色。本教程将深入探讨SmartUpload的使用方法和核心特性。 首先,SmartUpload的...
这个实例可能是为了帮助开发者理解如何在实际项目中使用SmartUpload,包括如何配置服务器以支持大文件上传,如何处理可能出现的异常,以及如何在上传成功后进行相应的业务处理。 在实践过程中,需要注意的点有: 1...
SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件
2. **大小限制**:可以设定每个文件的最大大小以及整个上传请求的总大小,防止大文件或过多文件导致服务器资源耗尽。 3. **文件类型过滤**:开发者可以设置允许上传的文件类型,阻止潜在的恶意文件上传,提高系统...