用户操作
[即时聊天] [发私信] [加为好友]
babydavic(王汉祥)ID:babydavic
115647次访问,排名788,好友9人,关注者10人。
java
babydavic的文章
原创 74 篇
翻译 1 篇
转载 38 篇
评论 57 篇
babydavic(王汉祥)的公告
大家互相讨教问题:请找我.QQ群:13861235 .....
最近评论
redcoatjk:你也很搞笑
crtl+v 2次....
搜索:又是一模一样的~!
platform:应该去看俺的.net版本的http send方法。哈哈
基本上已经是天下无敌了
xubin_xubin:写的不错
killingangle:不错啊,我转走了哦~谢谢啊~!~!
文章分类
收藏
    相册
    美丽图片
    dojo
    dojo官方网站
    DWR
    DWR collection converter 使用摘要
    DWR util 介绍
    ejb3
    ejb3的中文简介网站(RSS)
    javascript
    javascriptkit
    javascript画图形
    seo问题
    Web2.0(外国)
    判断系统是否安装了alexa
    动态javascript(外国)
    图片相册-javascript(RSS)
    图片集旋转显示
    Jmeter
    Jmeter_让它教会你使用jmeter
    jmeter下载
    jprofile
    Jprofile使用说明
    Junit单元测试
    junit测试
    MQ
    MQ
    webServer
    resin的另一个网址
    WebWork
    webwork中实现扩展用例方案1
    webwork基本用法
    正则表达式
    正则表达式
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 开发阶段eclipse下面的spring容器的启动优化收藏

    新一篇: [Jakarta Commons] 使用StringUtil类  | 旧一篇: 我的第一个taglib

    最近在负责一个大项目,项目组成员包括项目经理大概10个人左右。项目技术用struts+spring+hibernate实现。项目的规模相对来说是比较大的,总共有10大模块,每个大模块又分为有十几个、甚至几十个小模块。开发工具用eclipse,由于在开发阶段,项目开发成员需要频繁重启服务器。在启动服务器的时候,每次启动时间总是会超过1分钟。记得以前在做另外一个项目时,启动时间不到5秒钟,相差了10倍,而且项目规模是差不多的。

        从初步分析来说,应该是hibernate解释hbm.xml时花费时间,或者可能是spring容器启动并解释所有的bean配置文件。诊断了一下,发现1分钟消耗的时间主要分布在hibernate解释hbm.xml花费5秒;spring容器从启动到解释bean配置文件竟然花了58秒,真是太嚣张了。当时非常怀疑spring的效率问题。企图从网上搜索相关资料,看看有什么优化措施。

        首先是找到了hibernate的启动优化 http://www.hibernate.org/194.html  里面的主要思想是通过将xml序列花到本地的文件里,每次读取的时候根据情况,从本地文件读取并反序列化,节省了hibernate xml的解析时间。按照这个方式测试了一下,发现hibernate的启动时间从5秒降低到3秒,但是这个优化对于整个启动过程是杯水车薪的,毫无用处。

        没办法,又仔细查看了spring的资料,终于发现spring的容器是提供了lazy-load的,即默认的缺省设置是bean没有lazy-load,该属性处于false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库连接、事务等等。这么庞大的规模,难怪spring的启动时间要花将近1分钟。尝试了一下,把beans的default-lazy-init改为true就,再次启动,速度从原来的55秒,降到8秒钟!!Great!虽然是非常小一个改动,但是影响确实非常大。一个项目组10个人,假若每个人一天平均需要在eclipse下启动测试服务器50次。那么一天项目组需要重启500次,每次节省50秒的话,就是25000秒,将近几个小时,差不多一个工作日,多么可观的数字!

       不过在运行期间第一次点页面的时候,由于spring做了lazy-load,现在就需要启动一部分需要的beans,所以稍微慢2-3秒钟,但是明显比等几十秒要快很多,值得一鉴。

        以上是针对开发阶段的spring容器启动优化,在部署到实际环境中,倒是没必要设置为lazy-load。毕竟部署到实际环境中不是经常的事,每次启动1分钟倒不是大问题。 

    转自-http://www.blogjava.net/jspark/archive/2006/07/29/60712.html#Feedback

    发表于 @ 2006年07月30日 15:33:00|评论(loading...)|编辑

    新一篇: [Jakarta Commons] 使用StringUtil类  | 旧一篇: 我的第一个taglib

    评论

    #jetty 发表于2006-07-31 16:50:00  IP: 61.142.127.*
    great!
    #cm4ever 发表于2006-08-02 10:58:00  IP: 61.140.190.*
    关于hibernate延迟加载,看我的实现:
    Hibernate动态模块
    http://blog.csdn.net/cm4ever/archive/2006/06/14/795833.aspx
    #很好 发表于2006-08-02 12:45:00  IP: 222.216.81.*
    每台机子..装一个tomcat不可以吗?
    #null 发表于2006-08-02 13:13:00  IP: 58.246.56.*
    1、建议修改标题,好像跟eclipse没啥关系:)

    2、如果你们每个人一天平均需要在eclipse下启动测试服务器50次,说明开发方法存在问题,建议采用TDD或者至少写些单元测试,这可以大大减少你们打包、部署、启动服务器和跟踪调试所花的时间!
    #babydavic 发表于2006-08-10 20:27:00  IP: 124.29.58.*
    是的....我觉得也是应该这样去处理测试事情.....非常感激你给你的建议.......
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © babydavic(王汉祥)