http://community.csdn.net/Expert/topic/5633/5633356.xml?temp=.5122187
问题找到了,是用到sessionFactory好像就又加载hbm.xml,我把配置的hbm.xml删除就剩下我要测试的一个po,就很快,内存消耗很小,但我配置了lazy-init="true",没效果,把那些hbm.xml全加上,还是内存消耗很快

解决方案 »

  1.   

    什么问题啊?http://community.csdn.net/Expert/topic/5633/5633356.xml?temp=.5122187打不开啊
      

  2.   

    你是不是用mysql的,mysql好像不会延迟加载的
      

  3.   

    http://community.csdn.net/Expert/topic/5633/5633356.xml?temp=.5122187真的打不开另外
    >>>但我配置了lazy-init="true",没效果
    “没效果”是什么意思?是内存消耗很快,还是内存消耗跟没有配置这个参数的时候一样?
      

  4.   

    http://community.csdn.net/Expert/topic/5633/5633356.xml?temp=.5122187是我昨天发的帖子:
    高分急求解答,不够再给,郁闷好多天了:spring OutOfMemery
    spring1.2+hibernate3.2+struts,系统要上线了,发现个大问题,点击spring中含hibernate的内存每次都会泄漏一点,但点击spring里配置的jdbc的没问题,在weblogic监控中表现就是每次内存升到顶再下来时都比上次最低点高一点,就这样每次高点,最后OutOfMemory,weblogic已经分配2G内存。开始以为是hibernate连接没关,后来测试,只要调用一个dao,里面就不用到hibernate,比如就用jdbc查询一个sql,但只要把这个dao配置成hibernate事务,还会出现这个问题。试了好多方法都不行。基本上开几个页面,一直不停的点,20多分钟就把2G内存漏光了。我是专门写了个hibernate基础类,继承HibernateDaoSupport,这个基础类不配事务,业务dao配置事务,统一调用这个基础类,如果基础类报错抛出异常,业务dao捕获后照样回滚,这个没问题的,但就是会内存泄漏:
      

  5.   

    只是加载hbm.xml应该不会占用多少内存的啊!你把所有的hbm.xml都加载,会占用多少内存?大概的数字
      

  6.   

    反正这些都加上点击保存时和去调就剩下几个,时间慢的多,而且监控weblogic的内存使用情况,上升的快的多,点几下就到顶了,如果就剩下几个的情况,内存上升的非常慢,下来后内存也没有多少差别,但还有些,这些应该是留的几个引起的,如果所有的hbm.xml都加载,不断点击保存,内存升到顶再下来时都比上次最低点高一点,就这样每次高点,最后OutOfMemory
      

  7.   

    弱弱的问一下,难道spring就是dao一用到sessionFactory,他就会再重新把那堆hbm.xml再加载一次,不会服务启动的时候加载好,每次调用只是从内存里取啊,难道每次都要再全部加载一遍啊
      

  8.   

    weblogic设置2G内存,如果sessionFactory里配3,4个hbm.xml,点击一个保存时,20多下监控weblogic的内存到顶后下来,如果所有的hbm.xml都配置进去,点3,4下就到顶了
      

  9.   

    >>>难道每次都要再全部加载一遍
    显然,不是这样做的!:)>>>配3,4个hbm.xml,点击一个保存时,20多下监控weblogic的内存到顶后下来
    这个到顶是什么意思?是到2G了吗?>>>如果所有的hbm.xml都配置进去,点3,4下就到顶了
    这个到顶又是什么意思?
      

  10.   

    weblogic监控内存的那个曲线图,在监控,性能下面,到顶就是曲线到最上面,一般这个曲线都是呈上升下来的锯齿形嘛