• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            思勤無(wú)邪

            上學(xué)時(shí),因我年齡最小,個(gè)頭也最小,上課時(shí),就像大猩猩堆里的猴一般。如今,這猴偶爾也把最近的一些情況寫(xiě)在這里。

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

            公告

                 吾日常三省吾身,曰思、曰勤、曰無(wú)邪。

            積分與排名

            • 積分 - 184825
            • 排名 - 140

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                3.1 減少往返行程(Reduce Round Trips)
                使用下面的方法可以減少Web服務(wù)器和Browser之間的往返行程:
                1. 為Browser啟用緩存
                如果呈現(xiàn)的內(nèi)容是靜態(tài)的或變化周期較長(zhǎng),應(yīng)啟用Browser緩存,避免發(fā)出冗余的http請(qǐng)求。

                2. 緩沖頁(yè)面輸出
                如果可能,則盡量緩沖頁(yè)面輸出,處理結(jié)束后再一次傳送到客戶端,這可以避免頻繁傳遞小塊內(nèi)容所造成的多次網(wǎng)絡(luò)交互。由于這種方式在頁(yè)面處理結(jié)束之前客戶端無(wú)法看到頁(yè)面內(nèi)容,因此如果一個(gè)頁(yè)面的尺寸較大的話,可考慮使用Response.Flush方法。該方法強(qiáng)制輸出迄今為止在緩沖區(qū)中的內(nèi)容,你應(yīng)當(dāng)采用合理的算法控制調(diào)用Response.Flush方法的次數(shù)。

                3. 使用Server.Transfer重定向請(qǐng)求
                使用Server.Transfer方法重定向請(qǐng)求優(yōu)于Response.Redirect方法。原因是Response.Redirect會(huì)向Broswer回送一個(gè)響應(yīng)頭,在響應(yīng)頭中指出重定向的URL,之后Brower使用新的URL重新發(fā)出請(qǐng)求。而Server.Transfer方法直接是一個(gè)簡(jiǎn)單的服務(wù)端調(diào)用,完全沒(méi)有這些開(kāi)銷!
                需要注意Server.Transfer有局限性:第一,它會(huì)跳過(guò)安全檢查;第二,只適用于在同一Web應(yīng)用內(nèi)的頁(yè)面間跳轉(zhuǎn)。

                3.2 避免阻塞和長(zhǎng)時(shí)間的作業(yè)
                如果需要運(yùn)行阻塞或長(zhǎng)時(shí)間運(yùn)行的操作,可以考慮使用異步調(diào)用的機(jī)制,以便Web服務(wù)器能夠繼續(xù)處理其它的請(qǐng)求。
                1. 使用異步方式調(diào)用Web服務(wù)和遠(yuǎn)程對(duì)象
                只要有可能就要避免在請(qǐng)求的處理過(guò)程中對(duì)Web服務(wù)和遠(yuǎn)程對(duì)象的同步調(diào)用,因?yàn)樗加玫氖堑腁SP.NET 線程池中的工作線程,這將直接影響Web服務(wù)器響應(yīng)其它請(qǐng)求的能力。

                2. 考慮給不需要返回值的Web方法或遠(yuǎn)程對(duì)象的方法添加OneWay屬性
                這種模式能讓W(xué)eb Server調(diào)用之后就立即返回。可根據(jù)實(shí)際情況決定是否使用這種方法。

                3. 使用工作隊(duì)列
                將作業(yè)提交到服務(wù)器上的工作隊(duì)列中。客戶端通過(guò)發(fā)送請(qǐng)求來(lái)輪詢作業(yè)的執(zhí)行結(jié)果。

                3.3 使用緩存
                緩存能在很大程度上決定ASP.NET應(yīng)用的最終性能。Asp.net支持頁(yè)面輸出緩存和頁(yè)面部分緩存,并提供Cache API,供應(yīng)用程序緩存自己的數(shù)據(jù)。是否使用緩存可考慮下面的要點(diǎn):
                1. 識(shí)別創(chuàng)建與訪問(wèn)代價(jià)較大的數(shù)據(jù)
                2. 評(píng)估需要緩存數(shù)據(jù)的易變性
                3. 評(píng)估數(shù)據(jù)的使用頻次
                4. 將要緩存數(shù)據(jù)中易變數(shù)據(jù)和不變數(shù)據(jù)分離,只緩存不變數(shù)據(jù)
                5. 選擇合適的緩存機(jī)制(除Asp.net Cache外,Application state和Session state也可以作為緩存使用)

                3.4 多線程
                1. 避免在請(qǐng)求處理過(guò)程中創(chuàng)建線程
                在執(zhí)行請(qǐng)求的過(guò)程中創(chuàng)建線程是一種代價(jià)較大的操作,會(huì)嚴(yán)重影響Web Server的性能。如果后續(xù)的操作必須用線程完成,建議通過(guò)thread pool來(lái)創(chuàng)建/管理線程。

                2. 不要依賴線程數(shù)據(jù)槽或線程靜態(tài)變量
                由于執(zhí)行請(qǐng)求的線程是ASP.NET thread pool中的工作線程,同一個(gè)Client的兩次請(qǐng)求不一定由相同的線程來(lái)處理。

                3. 避免阻塞處理請(qǐng)求的線程
            參考"避免阻塞和長(zhǎng)時(shí)間的作業(yè)"小節(jié)。

                4. 避免異步調(diào)用
                這和1的情況類似。異步調(diào)用會(huì)導(dǎo)致創(chuàng)建新的線程,增加服務(wù)器的負(fù)擔(dān)。所以,如果沒(méi)有并發(fā)的作業(yè)要執(zhí)行,就不要執(zhí)行異步調(diào)用。

                3.5 系統(tǒng)資源
                1. 考慮實(shí)現(xiàn)資源池以提升性能
                2. 明確地調(diào)用Dispose或Close釋放系統(tǒng)資源
                3. 不要緩存或長(zhǎng)時(shí)間占用資源池中的資源
                4. 盡可能晚的申請(qǐng),盡可能早的釋放

                3.6 頁(yè)面處理
                1. 盡量減小Page的尺寸
                包括縮短控件的名稱、CSS的class的名稱、去掉無(wú)謂空行和空格、禁用不需要的ViewState
                2. 啟用頁(yè)面輸出的緩沖區(qū)(Buffer)
                如果Buffer的機(jī)制被關(guān)閉,可以用下面的方法打開(kāi)。
                 使用程序打開(kāi)頁(yè)面輸出緩存:
                  Response.BufferOutput = true;

                 使用@Page開(kāi)關(guān)打開(kāi)頁(yè)面輸出緩沖機(jī)制:
                  <%@ Page Buffer = "true" %>

                 使用Web.config或Machine.config配置文件的<pages>節(jié)點(diǎn):
                  <pages buffer="true" …>
                3. 利用Page.IsPostBack優(yōu)化頁(yè)面輸出
                4. 通過(guò)分離頁(yè)面的不同的內(nèi)容,來(lái)提高緩存效率和減少呈現(xiàn)的時(shí)間 
                5. 優(yōu)化復(fù)雜和代價(jià)較大的循環(huán) 
                6. 合理利用客戶端的計(jì)算資源,將一些操作轉(zhuǎn)移到客戶端進(jìn)行

                3.7 ViewState
                ViewState是Asp.net為服務(wù)端控件在頁(yè)面回傳之間跟蹤狀態(tài)信息而設(shè)計(jì)的一種機(jī)制。
                1. 關(guān)閉ViewState
                如果不需要跟蹤頁(yè)面狀態(tài),例如頁(yè)面不會(huì) 回傳(PostBack)、不需要處理服務(wù)端控件事件或者每次頁(yè)面刷新時(shí)都會(huì)重新計(jì)算控件內(nèi)容,那么就不需要用ViewState來(lái)記錄頁(yè)面狀態(tài)了。可以對(duì)特定的WebControl設(shè)置EnableViewState屬性,也可以在頁(yè)面一級(jí)設(shè)置:
            <%@ Page EnableViewState="false" %>

                2. 在恰當(dāng)?shù)臅r(shí)間點(diǎn)初始化控件屬性
                ASP.NET的控件在執(zhí)行構(gòu)造函數(shù)、初始化的期間設(shè)置的屬性不會(huì)被跟蹤變化;而在初始化階段之后對(duì)屬性的修改都會(huì)被跟蹤,并最終記錄到IE頁(yè)面的__VIEWSTATE之中。所以,選擇合理的初始化控件屬性的執(zhí)行點(diǎn),能有效的減小頁(yè)面尺寸。

                3. 謹(jǐn)慎選擇放到ViewState中的內(nèi)容
                放到ViewState中的內(nèi)容會(huì)被序列化/反序列化,Asp.net為String、Integer、Boolean等基本類型的序列化做了優(yōu)化,如果Array、ArrayList、HashTable存儲(chǔ)的是基本類型效率也較高,但其它類型則需要提供類型轉(zhuǎn)換器(Type Converter),否則將使用代價(jià)昂貴的二進(jìn)制序列化程序。

            posted on 2007-04-07 09:32 思勤無(wú)邪 閱讀(1047) 評(píng)論(0)  編輯 收藏 引用 所屬分類: .NET
            亚洲午夜久久久| 久久精品夜夜夜夜夜久久| segui久久国产精品| 99久久99久久精品国产片| 国产成人精品久久亚洲| 久久亚洲sm情趣捆绑调教| 久久国产精品一国产精品金尊| 天天久久狠狠色综合| 一个色综合久久| 精品久久久久久久| 久久香综合精品久久伊人| 精品久久久久久久无码| 午夜精品久久久久久影视777| 国产精品久久久久蜜芽| 99热成人精品免费久久| 亚洲午夜久久久影院| 久久久久人妻一区精品果冻| 久久精品夜夜夜夜夜久久| 一本久久免费视频| 久久精品亚洲福利| 国产99精品久久| 久久精品免费全国观看国产| 久久国产成人精品国产成人亚洲| 日韩精品久久久肉伦网站| 久久综合久久鬼色| 久久高清一级毛片| AA级片免费看视频久久| 91精品国产色综久久 | 一级做a爰片久久毛片人呢| 久久综合视频网| 亚洲人成无码www久久久| 久久人妻少妇嫩草AV蜜桃| 国产日韩久久久精品影院首页| 久久这里只有精品18| 亚洲AV无码久久精品成人| 久久强奷乱码老熟女网站| 人妻丰满?V无码久久不卡| 亚洲色欲久久久久综合网| 无码国内精品久久综合88| 精品一二三区久久aaa片| 一本一本久久a久久综合精品蜜桃|