java版的XDJM们,大家好。第一次提问大家多多支持呀。
最近jboss服务器比较经常当机,所以做了个性能测试,发现在SmartUpload组件出了点问题,
当执行到SmartFile类以下语句 fileoutputstream.write(m_parent.m_binArray, m_startData, m_size);时抛出了java.lang.OutOfMemoryError(当然,是在做大量的重复测试后才抛出),
但看内存的快照却一切正常,JVM已使用的内存并没超出JVM最大内存。
请各位兄弟姐妹们一起分析分析,也让我补些java内存方面的知识。嘿,做java以来都关注于应用了,怱略了底层知识的学习。

解决方案 »

  1.   

    听说smartUpload上传大文件很容易内存溢出,不知道是不是这个原因,smartUpload已经是很久远的东西了
      

  2.   

    楼主:您好!
    可以修改JAVA运行时的内存大小
    如果在TOMCAT里运行的话可以在bin下的文件里修改
    如果在eclipse里的也可以修改其配置文件
      

  3.   

    改下JVM的内存大小!!
    但这不能根治
      

  4.   

    java内存溢出的详细解决方案
    http://wobuxiaole.javaeye.com/blog/408470
      

  5.   

    加大内存 修改jvm虚拟内存大小
    然后对程序进行性能改进
      

  6.   

    这是SUN的JDK的架构问题,当初在设计是没想到反射代理会用的那么普遍。 
    对类信息反射时内存区域在SUN的JDK里无法被GC掉,然而反复使用遍便越积越多直到溢出, 
    用Tomcat时经常出现Out Of Memery。 
    而SUN一直对此爱理不理,因为是架构问题,所以除了推倒从来几乎没别的办法。 
    建议楼主用第三方开发的JDK,比如jrockit。