您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么避免ASP.NET緩存占用系統資源”,在日常操作中,相信很多人在怎么避免ASP.NET緩存占用系統資源問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么避免ASP.NET緩存占用系統資源”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
ASP.NET緩存概述
ASP.Net支持兩種類型的緩存:數據緩存和頁面緩存。數據緩存允許你保留正常在關聯以外的數據,并在完成頁面處理后為垃圾收集做好準備。頁面緩存允許將頁面輸出保存在服務器中,然后從內存中恢復它們,而不是重新進行處理。兩種緩存機制都提供使緩存無效的功能。
當一個數據元素在緩存以外時,你或者可以采用回調重新生成它,或者在需要它時查看它是否還在原處,然后再重新生成它。如果緩存無效,頁面緩存會重新對頁面進行處理。
有效利用緩存的訣竅在于理解它代表的權衡關系。緩存使用內存,而內存是一種相當有限的資源。如果內存運行緩慢,ASP.Net會清掃緩存。幸運的是,在清掃過程中,你可以設置優先,保留一些項目。如果沒有這些線索,首先清除舊的和很少使用的項目。
因此,在緩存中存儲許多大型對象或頁面可能會產生負作用。如果對象或頁面在緩存中保存的時間不夠長,不足以抵消緩存中固有的管理費用,那么性能就會出現凈下滑。
還要認識到,緩存并不常用的數據完全是浪費系統資源。此外,緩存經常需要使其無效的數據(以頁面視圖百分比,而不是每天的次數來測量)也是一種浪費。例如,緩存每小時顯示三或四次,但每兩分鐘就需要重新生成的股票行情收錄器就是對服務器內存的浪費。
ASP.NET緩存的進化
ASP.Net緩存也在不斷進化。在決定是否使用它時,確定你評估的是將在應用程序上運行的同一個版本的緩存。例如,.Net 1.1 Framework沒有SQL Server緩存,但.Net 2.0和3.0有SQL Server緩存。確實,.Net 3.0中的緩存相當簡單,它只有三種類型的失效(時間、文件改變和鍵改變)。
讓SQL Server自動使緩存失效也相當有趣。在SQL Server 2000中,你需要定期檢查數據庫,僅查看是否有一個表發生了改變。SQL Server 2005探測緩存并告訴它失效,它也支持行級失效。老實說,雖然這似乎是一個非常好并且有用的特性,但它也建立了大量的廠商鎖定。
你***是使用鍵緩存讓你的應用程序的應用層來處理緩存。雖然這樣做可能不如行級改變的自動通知那樣迅速有效,但你可以用一個精心設計的數據庫來達到幾乎相同的目的:用緩存中的對象來保留記錄的主記錄ID(如雇員表的記錄ID),然后把數據庫中那個主記錄的失效層疊到其它相關的緩存項目(如那名雇員的薪水冊數據)。雖然這樣做可能要付出一定的努力,但你會獲得回報,讓應用程序保持廠商中立。
雖然緩存好像是提高性能的妙方,但你必須謹慎地使用它。如果對進行緩存的數據選擇不當,就可能傷害到你的性能或浪費服務器資源,使得問題比以前更加惡化。衡量你的選項并執行一些負載測試看看緩存是否有用。
***的方法可能是仿造應用程序的一個速成版本;一旦它模擬后端性能后(有意減速以復制處理時間),再把它放在一個現實的負載下,看看緩存能否提高性能。
安裝和使用頁面緩存相當方便,至少具有簡單的失效(時間、文件)規則,但試用應用程序數據緩存和更加高級的頁面失效功能可能需要預先做大量的工作才能生成現有的代碼。應用緩存需要提前進行規劃,而不能事后才追悔,認為它能提高性能。
到此,關于“怎么避免ASP.NET緩存占用系統資源”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。