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

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

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

    posts - 73,  comments - 55,  trackbacks - 0
    ?轉(zhuǎn)自(http://leaf.jdk.cn/default.asp?cateID=4)
    ?????? jspark 的這篇文章《開發(fā)階段eclipse下面的spring容器的啟動優(yōu)化 》講到如何加快spring的啟動速度。非常感謝jspark. 一下是引用的原文:

    ? 最 近在負責(zé)一個大項目,項目組成員包括項目經(jīng)理大概10個人左右。項目技術(shù)用struts+spring+hibernate實現(xiàn)。項目的規(guī)模相對來說是比 較大的,總共有10大模塊,每個大模塊又分為有十幾個、甚至幾十個小模塊。開發(fā)工具用eclipse,由于在開發(fā)階段,項目開發(fā)成員需要頻繁重啟服務(wù)器。 在啟動服務(wù)器的時候,每次啟動時間總是會超過1分鐘。記得以前在做另外一個項目時,啟動時間不到5秒鐘,相差了10倍,而且項目規(guī)模是差不多的。

    ??? 從初步分析來說,應(yīng)該是hibernate解釋hbm.xml時花費時間,或者可能是spring容器啟動并解釋所有的bean配置文件。診斷了一下,發(fā) 現(xiàn)1分鐘消耗的時間主要分布在hibernate解釋hbm.xml花費5秒;spring容器從啟動到解釋bean配置文件竟然花了58秒,真是太囂張 了。當(dāng)時非常懷疑spring的效率問題。企圖從網(wǎng)上搜索相關(guān)資料,看看有什么優(yōu)化措施。

    ??? 首先是找到了hibernate的啟動優(yōu)化 http://www.hibernate.org/194.html? 里面的主要思想是通過將xml序列花到本地的文件里,每次讀取的時候根據(jù)情況,從本地文件讀取并反序列化,節(jié)省了hibernate xml的解析時間。按照這個方式測試了一下,發(fā)現(xiàn)hibernate的啟動時間從5秒降低到3秒,但是這個優(yōu)化對于整個啟動過程是杯水車薪的,毫無用處。

    ??? 沒辦法,又仔細查看了spring的資料,終于發(fā)現(xiàn)spring的容器是提供了lazy-load的,即默認的缺省設(shè)置是bean沒有l(wèi)azy- load,該屬性處于false狀態(tài),這樣導(dǎo)致spring在啟動過程導(dǎo)致在啟動時候,會默認加載整個對象實例圖,從初始化ACTION配置、到 service配置到dao配置、乃至到數(shù)據(jù)庫連接、事務(wù)等等。這么龐大的規(guī)模,難怪spring的啟動時間要花將近1分鐘。嘗試了一下,把beans的 default-lazy-init改為true就,再次啟動,速度從原來的55秒,降到8秒鐘!!Great!雖然是非常小一個改動,但是影響確實非常 大。一個項目組10個人,假若每個人一天平均需要在eclipse下啟動測試服務(wù)器50次。那么一天項目組需要重啟500次,每次節(jié)省50秒的話,就是 25000秒,將近幾個小時,差不多一個工作日,多么可觀的數(shù)字!

    ?? 不過在運行期間第一次點頁面的時候,由于spring做了lazy-load,現(xiàn)在就需要啟動一部分需要的beans,所以稍微慢2-3秒鐘,但是明顯比等幾十秒要快很多,值得一鑒。

    ??? 以上是針對開發(fā)階段的spring容器啟動優(yōu)化,在部署到實際環(huán)境中,倒是沒必要設(shè)置為lazy-load。畢竟部署到實際環(huán)境中不是經(jīng)常的事,每次啟動1分鐘倒不是大問題。

    我這里要提醒的是不是說有的beans都能設(shè)置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-11 10:27 保爾任 閱讀(265) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品国产精品乱码不卞| 国产成人精品高清免费| 亚洲AV无码久久精品成人| 十八禁的黄污污免费网站| 丁香亚洲综合五月天婷婷| 理论亚洲区美一区二区三区| 免费看少妇作爱视频| 亚洲av无一区二区三区| 精品久久久久久久免费人妻| 亚洲国产成人久久精品大牛影视| 成年女人毛片免费播放人| 国产精品亚洲专区无码WEB| 免费中文字幕一级毛片| sss在线观看免费高清| 国产亚洲精品美女久久久| 好久久免费视频高清| 亚洲熟妇色自偷自拍另类| 成年人免费的视频| 亚洲AV无码成人网站在线观看| 国产又长又粗又爽免费视频| 亚洲天堂免费在线视频| 久久久久亚洲精品美女| 四虎永久在线观看免费网站网址| 性xxxx黑人与亚洲| 成人伊人亚洲人综合网站222| 青柠影视在线观看免费高清| 亚洲欧洲国产综合| 国产视频精品免费| 免费在线黄色电影| 亚洲一区二区三区成人网站 | 亚洲国产精品无码专区在线观看| 在线毛片片免费观看| 亚洲视频无码高清在线| 亚洲国产人成中文幕一级二级| 久久免费美女视频| 亚洲国产精品成人AV在线| 国产精品亚洲一区二区麻豆| 国产高清在线精品免费软件| 丝瓜app免费下载网址进入ios | 亚洲色成人网站WWW永久四虎| 亚洲 综合 国产 欧洲 丝袜|