System.gc() 到底要不要显式调用啊?
我写了几套电子商务系统,分开服务器:后台和图片服务器在一起;前台在另一台服务器上,下载的图片量大。
没有写System.gc() ,后台服务器老是崩溃,写了之后,崩溃少了,内存总算可以及时回收了,但是有时觉得一卡一卡。
有人说不需要显示调用,但是一旦取消,一会后台就崩溃了。
关于tomcat启动的参数,我也调节过,太小了马上就崩了,根本没有商量的余地;太大了,时间倒是长了,但是tomcat竟然假死!nnd。
我写了几套电子商务系统,分开服务器:后台和图片服务器在一起;前台在另一台服务器上,下载的图片量大。
没有写System.gc() ,后台服务器老是崩溃,写了之后,崩溃少了,内存总算可以及时回收了,但是有时觉得一卡一卡。
有人说不需要显示调用,但是一旦取消,一会后台就崩溃了。
关于tomcat启动的参数,我也调节过,太小了马上就崩了,根本没有商量的余地;太大了,时间倒是长了,但是tomcat竟然假死!nnd。
解决方案 »
- weblogic8调试出现 Source not found 问题
- 做过视频检测系统的进来帮下忙啊
- 要求用JBUILDER具体实现一个三层结构的小程序,并详细说明程序结构和原理。
- [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset by peer: socket write error
- Action---110------110----110--------
- 用java做xml,推荐工具吧
- 求Tomcat5的下载
- eclipse 环境问题,初级问题
- 推荐好书
- petstore配置运行问题!!急
- 关于struts测试的问题
- 大侠请进
主要就是jvm参数调优
1,关于楼主下载图片出现服务器崩溃,可能是由于服务器的配置条件不好导致的,也有可能是有程序中的代码没有得到优化所引起的,lz可以从这两个方面去分析。
你显示掉了也不好使。
图片都是静态数据,不会执行Java代码的吧~~
1,服务器老是崩溃是因为内存很快被占满,在允许的条件下你可以适当加大内存配置,用mx和ms控制内存堆大小
-Xms
-Xmx
2,如果你的程序需要通过System.gc()来减少JVM崩溃的几率,那么你的程序10有8,9存在问题,需要从你程序本身去进行优化
3,可以把GC配置为CMS回收方式,以提高回收效率
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+UseParNewGC
-XX:CMSFullGCsBeforeCompaction=0
-XX:CMSInitiatingOccupancyFraction=75
-XX:+CMSParallelReEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
4,-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC用这些参数输出GC日志,然后分析,如果你不会分析,可以把GC日志贴出来