<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rory's Blog
    Happy study,Happy work,Happy life
    posts - 22,  comments - 46,  trackbacks - 0

    ? jspark 的這篇文章《開發階段eclipse下面的spring容器的啟動優化 》講到如何加快spring的啟動速度。非常感謝jspark. 一下是引用的原文:

    ? 最近在負責一個大項目,項目組成員包括項目經理大概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分鐘倒不是大問題。

    我這里要提醒的是不是說有的beans都能設置default-lazy-init成為true.對于scheduler的bean不能用lazy-init

    < beans? default-lazy-init ="true" >
    ????
    ????
    < bean? class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
    ????????
    < property? name ="triggers" >
    ????????????
    < list >
    ????????????????
    < ref? bean ="buildHtmlTrigger" />
    ????????????????
    < ref? bean ="askTrigger" />
    ????????????????
    < ref? bean ="mailSenderTrigger" />
    ????????????????
    < ref? bean ="topicDetailBuildTrigger" />
    ????????????????
    < ref? bean ="forumBuildTrigger" />
    ????????????????
    < ref? bean ="topicBuildTrigger" />
    ????????????
    </ list >
    ????????
    </ property >
    ????
    </ bean >
    </ beans >




    這樣的話。所有的scheduler就都不管用了。所以請大家要注意。

    < beans >
    ????
    ????
    < bean? class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
    ????????
    < property? name ="triggers" >
    ????????????
    < list >
    ????????????????
    < ref? bean ="buildHtmlTrigger" />
    ????????????????
    < ref? bean ="askTrigger" />
    ????????????????
    < ref? bean ="mailSenderTrigger" />
    ????????????????
    < ref? bean ="topicDetailBuildTrigger" />
    ????????????????
    < ref? bean ="forumBuildTrigger" />
    ????????????????
    < ref? bean ="topicBuildTrigger" />
    ????????????
    </ list >
    ????????
    </ property >
    ????
    </ bean >
    </ beans >


    ?

    posted on 2006-08-10 10:59 莫多 閱讀(3319) 評論(2)  編輯  收藏 所屬分類: Spring

    FeedBack:
    # re: 關于spring啟動的優化的問題
    2006-08-11 20:04 | 綠色使者、綠色心情
    還有一些其它的beans,也不能這樣的,比如datasource好像lazy-load也有問題的。  回復  更多評論
      
    # re: 關于spring啟動的優化的問題
    2006-08-11 20:58 | 莫多
    是么。不過我好像是可以的啊。
    除了。scheduler我好都設置的lazy-init
      回復  更多評論
      

    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(1)

    隨筆分類(27)

    隨筆檔案(22)

    Friends

    搜索

    •  

    積分與排名

    • 積分 - 62221
    • 排名 - 845

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲永久无码3D动漫一区| 免费日韩在线视频| 亚洲国产精品久久久久婷婷老年| 久久精品无码免费不卡| 亚洲精品偷拍视频免费观看| 日本一区二区三区在线视频观看免费 | 亚洲经典千人经典日产| 特级淫片国产免费高清视频| 亚洲砖码砖专无区2023| 成人无遮挡毛片免费看| 国产亚洲精品AAAA片APP| 亚洲精品国产精品乱码不卞 | 亚洲av不卡一区二区三区| 久久精品中文字幕免费| 亚洲精品日韩中文字幕久久久| 精品一区二区三区无码免费视频| 亚洲成人福利在线观看| 国产精品成人免费一区二区| 亚洲精品无码你懂的| 亚洲av无码乱码在线观看野外 | 久久无码av亚洲精品色午夜 | 日本免费人成黄页在线观看视频| 一本久久免费视频| 亚洲成A人片在线观看无码不卡| 91精品免费观看| 亚洲高清国产拍精品熟女| 亚洲精品A在线观看| 久久国产乱子免费精品| 亚洲大香人伊一本线| 国产成人aaa在线视频免费观看| 亚洲天堂免费在线视频| 亚洲黄色免费网站| 日本一道在线日本一道高清不卡免费| 又黄又大的激情视频在线观看免费视频社区在线 | 图图资源网亚洲综合网站| 99在线视频免费观看视频| 一个人免费播放在线视频看片 | 亚洲国产精品无码第一区二区三区| 亚洲国产a级视频| 3344免费播放观看视频 | 在线观看亚洲AV日韩A∨|