tomcat 内存没有回收 最近用SSH2 框架做了一文件管理系统放在tomcat6.0 上,实现的是用户文件查询下载功能。每次每个用户将查询出来的几百条记录文件在tomcat里面打包成压缩文件。再下载,估计 几十MB 大小,用户人数是4-5 人而已。结果发现内存使用是不断的上升,到设置的最大点后,tomcat就没有响应了。个人怀疑:tomcat 内存没有回收。希望各位高手帮助解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 几百条记录文件在tomcat里面打包成压缩文件每次都生成不一样的压缩包吗?让它只生成一个就好了撒(名字固定) java会自动gc的,咱们都控制不了。内存溢出通过http://hi.baidu.com/tiger560/blog/item/498e72893ab69cb70e24444b.html试试吧。我觉得问题会在zip压缩那块,用工具检测一下内存吧。比如jdk自带的jvisualvm.exe 支持,换一个Tomcat试一试! 最大的可能是您自己的程序没有释放没有用的对象,导致memory leak。所以最好是查程序,否则换个版本的Tomcat也没有用。 不是内存么有收回,是内存溢出了,因为你的需要的内存太大,而tomcate的不够,所以还没有到该收的时候已经溢出了。 jprofile看看到底是何对象或何输入输出流占用内存了 是你程序 运行时 开销太大 tomcat的内存就那么多 而你的对象有在增长 内存当然不够了 还是你程序的问题跟tomcat没关系,内存是否回收是jvm的事情。检查一下程序吧 没法去控制JVM的内存回收。查查你的文件是否关闭,其他资源是否在用完后被释放。 以解决:win 版的TOMCAT 如果去设置Java 内存使用mix max 是就会有问题重新安装 不断上升应该是vm需要使用的内存越来越多,从而在不断划分系统内存供自己使用所导致的。压缩/解压缩这样的程序,对于java来说...我没有具体项目经验,但是感觉对于java来说只是可以用。如果IO访问内容过大,还是很容易出错的,比如OutOfMemoryException。所以,如果需求固定,可以用jni写一个专门压缩文件的程序,在java程序中调用。或者直接调用系统命令,比如gzip什么的,把需要压缩的文件当作参数组合成一个命令行good luck tomcat找不到那只猫的界面!? 业务类为什么$Proxy1 同一个service在不同的action里值不一样 怎样销毁session? 空间最近得知是不能上传jar文件,但系统也需要引用到jar里的文件,如何解决此问题 讀取中文PDF文件出現亂碼 Resultset的getString()操作获得的字符串的比较问题 问一个用JSP统计在线人数据的问题 eclipse无法使用 为什么线程未发生异常 一道关于登陆的面试题 求视频播放器
每次都生成不一样的压缩包吗?
让它只生成一个就好了撒(名字固定)
支持,换一个Tomcat试一试!
所以最好是查程序,否则换个版本的Tomcat也没有用。
查查你的文件是否关闭,其他资源是否在用完后被释放。
我没有具体项目经验,但是感觉对于java来说只是可以用。
如果IO访问内容过大,还是很容易出错的,比如OutOfMemoryException。所以,
如果需求固定,可以用jni写一个专门压缩文件的程序,在java程序中调用。
或者直接调用系统命令,比如gzip什么的,把需要压缩的文件当作参数组合成一个命令行good luck