<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容器的啟動(dòng)優(yōu)化 》講到如何加快spring的啟動(dòng)速度。非常感謝jspark. 一下是引用的原文:

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

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

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

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

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

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

    我這里要提醒的是不是說(shuō)有的beans都能設(shè)置default-lazy-init成為true.對(duì)于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就都不管用了。所以請(qǐng)大家要注意。
    <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 保爾任 閱讀(256) 評(píng)論(0)  編輯  收藏

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


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

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 全黄性性激高免费视频| 久热免费在线视频| 成人爱做日本视频免费| 亚洲av无码一区二区三区观看| 国产精品白浆在线观看免费| 亚洲午夜久久久影院伊人| 一级特黄特色的免费大片视频| www国产亚洲精品久久久| 老湿机一区午夜精品免费福利| 日韩成人免费在线| 亚洲AV无码一区二区乱子仑| 日本免费一二区在线电影| 特级毛片全部免费播放a一级| 亚洲精品老司机在线观看| 久久一区二区免费播放| 亚洲AV日韩AV鸥美在线观看| 国产午夜免费高清久久影院| 亚洲福利在线视频| 欧美最猛性xxxxx免费| 最新亚洲精品国偷自产在线| 国产又黄又爽又刺激的免费网址| 免费无码国产V片在线观看| 中文字幕不卡亚洲 | 九月婷婷亚洲综合在线| 一区二区三区免费视频观看| 亚洲精品V欧洲精品V日韩精品 | 在线观看日本免费a∨视频| 亚洲国产成人久久精品大牛影视| 免费成人黄色大片| 国产精品免费大片| 亚洲精华国产精华精华液好用| 亚洲精品视频在线观看你懂的| 日本一卡精品视频免费| 亚洲人成网站999久久久综合| 亚洲无码高清在线观看| 最刺激黄a大片免费网站| 亚洲精品蜜夜内射| 亚洲AV无码乱码国产麻豆穿越| 午夜宅男在线永久免费观看网| 五月天国产成人AV免费观看| 亚洲色偷偷av男人的天堂|