在实际项目中需要向服务器上上传文件,但是tomcat将上传的文件解析为2进制数组后,tomcat内存增长很快。我做了测试发现当在servlet中穿件对象时,这个内存就会增加比如: } |
|
25分
#1 |
|
#2 |
@oh_Maxy 这个导入文件的问题我已经解决利用的是commons-fileupload-1.3.1jar包。但是这个字符串不清理我不知道该怎么处理,不知道当用户多了内存就会消耗严重呢,这是jvm还是tomcat问题呢
|
#3 |
回复2楼: 如果真的存在这样超大的buffer,可以用buffer.setLength(0)来处理。如果是list或map,用clean操作一下。 |
#4 |
可以分批上传,批次处理,然后及时清理,避免内存占用峰值过大就行
|
#5 |
@oh_Maxy 好像也没什么效果啊,;我是这么看内存的,不知道准不准,按你说的清理后这个内存变化和没清理时一样的
|
#6 |
@u010582851 我不知道这个该怎么清理,我想就是内存怎么能下去呢
|
5分
#7 |
你循环写入内存100万次,你说内存吃紧不?各什么系统都受不了,内存吃紧是正常现象,不过生产中没有这么干的。
|
#8 |
回复5楼: 那就想办法分段处理的数据吧! |
10分
#9 |
原因是循环一百万次,会导致大量数据进行旧生代,垃圾回收后内存会下来。建议不要这样使用
|
#10 |
@xuanming25 我不太懂“会导致大量数据进行旧生代”,你的意思是以后这个内存会会降下来吗
|