此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【findself】截止到2008-08-02 10:43:57的历史汇总数据(不包括此帖):
发帖的总数量:7                        发帖的总分数:180                      每贴平均分数:25                       
回帖的总数量:62                       得分贴总数量:17                       回帖的得分率:27%                      
结贴的总数量:7                        结贴的总分数:180                      
无满意结贴数:2                        无满意结贴分:40                       
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:28.57 %               无满意结分率:22.22 %                  
敬礼!

取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=findself

解决方案 »

  1.   

    不会出现你说的这种情况,只有hibernate使用不当才能导致慢
    spring只是一个轻量级框架,不会有太大性能影响!楼主还是先测试一下,hibernate到数据库再返回时候的时间消耗吧,与spring无关
      

  2.   

    正如楼上说的spring不会造成大的影响
    应该是hibernate与数据库交互问题
    或者hibernate的映射问题
    检索的时候获得了不需要的关联数据
      

  3.   

     spring的容器是提供了lazy-load的,即默认的缺省设置是bean没有lazy-load,该属性处于false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库连接、事务等等。把beans的default-lazy-init改为true就,再次启动,速度乐观,但是影响确实非常大。一个项目组10个人,假若每个人一天平均需要在eclipse下启动测试服务器50次。那么一天项目组需要重启500次,每次节省50秒的话,就是25000秒,将近几个小时,差不多一个工作日,多么可观的数字!   不过在运行期间第一次点页面的时候,由于spring做了lazy-load,现在就需要启动一部分需要的beans,所以稍微慢2-3秒钟,但是明显比等几十秒要快很多,值得一鉴。
      

  4.   

    跟hibernate关系比较大,比如说:
    一对多的关联映射,想班级(class)和学生student,
    如果这种一对多的关联关系与class这一端来维护的话,
    当把class对象映射到表中时,最后hibernate还会发一些update语句来
    更新student表,像这样如果学生特别多的话,会有很多的update语句的,影响了性能。
    所以应该在class的配置文件中加一个inverse=true;
    把关系交由student来维护,这样在把student映射到表里时,hibernate是不会发出update语句的。还有像多对多的关联映射,也要在相应的配置文件中的set标签中加一个lazy=true,
    这样查询集合里有多少个元素时,hibernate会发出select count(*)这样比较聪明的sql语句。
      

  5.   

    瓶颈应该说都在数据库那了吧,或者你看看是不是新增了别的?
    spring一次加载很多bean有点影响性能,但是不会很大,看来还是数据库那吧!
      

  6.   

    ssh的性能本来就要比较慢。他要负责加密的问题。持久层改用轻量级spring来试试,性能上应该能提升不少
      

  7.   

    谢谢,了解了不少,整理下大家的观点以及我的看法:
    1.Hibernate配制: Hibernate3.*以上的配制中lazy默认是为true,不过加入spring后好像不是了,在表示层中可以任意抓取跟它级联的数据.这是导致性能低的原因1.那怎么在spring中配制Hibernate的lazy呢?
    2spring容器的lazy-load: 谢谢qlrhoo,回去试一下你的方法.