• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    編寫高性能WEB 應用程序的10 個技巧

    發布: 2009-4-16 09:27 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 47次 | 進入軟件測試論壇討論

    領測軟件測試網

    圖 3 ASP.NET緩存


    緩存有幾個極佳的功能,您需要對它們有所了解。首先,緩存會實現最近最少使用的算法,使得 ASP.NET 能夠在內存運行效率較低的情況下強制緩存清除 - 從緩存自動刪除未使用過的項目。第二,緩存支持可以強制失效的過期依賴項。這些依賴項包括時間、密鑰和文件。時間經常會用到,但是對于 ASP.NET 2.0,引入了一個功能更強的新失效類型:數據庫緩存失效。它指的是當數據庫中的數據發生變化時自動刪除緩存中的項。有關數據庫緩存失效的詳細信息,請參閱 MSDN?Magazine 2004 年 7 月的 Dino Esposito Cutting Edge 專欄。要了解緩存的體系結構,請參閱圖 3。


    技巧 5 — 每請求緩存


    在本文前面部分,我提到了經常遍歷代碼路徑的一些小改善可能會導致較大的整體性能收益。對于這些小改善,其中有一個絕對是我的最愛,我將其稱之為“每請求緩存”。

    緩存 API 的設計目的是為了將數據緩存較長的一段時間,或者緩存至滿足某些條件時,但每請求緩存則意味著只將數據緩存為該請求的持續時間。對于每個請求,要經常訪問某個特定的代碼路徑,但是數據卻只需提取、應用、修改或更新一次。這聽起來有些理論化,那么我們來舉一個具體的示例。

    在社區服務器的論壇應用程序中,頁面上使用的每個服務器控件都需要個性化的數據來確定使用什么外觀、使用什么樣式表,以及其他個性化數據。這些數據中有些可以長期緩存,但是有些數據卻只針對每個請求提取一次,然后在執行該請求期間對其重用多次,如要用于控件的外觀。

    為了達到每請求緩存,請使用 ASP.NET HttpContext。對于每個請求,都會創建一個 HttpContext 實例,在該請求期間從 HttpContext.Current 屬性的任何位置都可訪問該實例。該 HttpContext 類具有一個特殊的 Items 集合屬性;添加到此 Items 集合的對象和數據只在該請求持續期間內進行緩存。正如您可以使用緩存來存儲經常訪問的數據一樣,您也可以使用 HttpContext.Items 來存儲只基于每個請求使用的數據。它背后的邏輯非常簡單:數據在它不存在的時候添加到 HttpContext.Items 集合,在后來的查找中,只是返回 HttpContext.Items 中的數據。


    技巧 6 — 后臺處理


    通往代碼的路徑應該盡可能快速,是嗎?可能有時您會覺得針對每個請求執行的或者每 n 個請求執行一次的任務所需資源非常多。發送電子郵件或者分析和驗證傳入數據就是這樣的一些例子。

    剖析 ASP.NET Forums 1.0 并重新構建組成社區服務器的內容時,我們發現添加新張貼的代碼路徑非常慢。每次添加新張貼時,應用程序首先需要確保沒有重復的張貼,然后必須使用“壞詞”篩選器分析該張貼,分析張貼的字符圖釋,對張貼添加標記并進行索引,請求時將張貼添加到合適的隊列,驗證附件,最終張貼之后,立即向所有訂閱者發出電子郵件通知。很清楚,這涉及很多操作。

    經研究發現,大多數時間都花在了索引邏輯和發送電子郵件上。對張貼進行索引是一個非常耗時的操作,人們發現內置的 System.Web.Mail 功能要連接 SMYP 服務器,然后連續發送電子郵件。當某個特定張貼或主題領域的訂閱者數量增加時,執行 AddPost 功能所需的時間也越來越長。

    并不需要針對每個請求都進行電子郵件索引。理想情況下,我們想要將此操作進行批處理,一次索引 25 個張貼或者每五分鐘發送一次所有電子郵件。我們決定使用以前用于對數據緩存失效進行原型設計的代碼,這個失效是用于最終進入 Visual Studio&reg; 2005 的內容的。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    64/6<123456>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>