偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何避免ASP.NET緩存占用系統(tǒng)資源

開發(fā) 后端
ASP.Net支持兩種類型的緩存:數(shù)據(jù)緩存和頁面緩存。本文介紹避免ASP.NET緩存占用系統(tǒng)資源的一些小技巧。

ASP.NET緩存概述

ASP.Net支持兩種類型的緩存:數(shù)據(jù)緩存和頁面緩存。數(shù)據(jù)緩存允許你保留正常在關聯(lián)以外的數(shù)據(jù),并在完成頁面處理后為垃圾收集做好準備。頁面緩存允許將頁面輸出保存在服務器中,然后從內(nèi)存中恢復它們,而不是重新進行處理。兩種緩存機制都提供使緩存無效的功能。

當一個數(shù)據(jù)元素在緩存以外時,你或者可以采用回調(diào)重新生成它,或者在需要它時查看它是否還在原處,然后再重新生成它。如果緩存無效,頁面緩存會重新對頁面進行處理。

有效利用緩存的訣竅在于理解它代表的權(quán)衡關系。緩存使用內(nèi)存,而內(nèi)存是一種相當有限的資源。如果內(nèi)存運行緩慢,ASP.Net會清掃緩存。幸運的是,在清掃過程中,你可以設置優(yōu)先,保留一些項目。如果沒有這些線索,首先清除舊的和很少使用的項目。

因此,在緩存中存儲許多大型對象或頁面可能會產(chǎn)生負作用。如果對象或頁面在緩存中保存的時間不夠長,不足以抵消緩存中固有的管理費用,那么性能就會出現(xiàn)凈下滑。

還要認識到,緩存并不常用的數(shù)據(jù)完全是浪費系統(tǒng)資源。此外,緩存經(jīng)常需要使其無效的數(shù)據(jù)(以頁面視圖百分比,而不是每天的次數(shù)來測量)也是一種浪費。例如,緩存每小時顯示三或四次,但每兩分鐘就需要重新生成的股票行情收錄器就是對服務器內(nèi)存的浪費。

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中,你需要定期檢查數(shù)據(jù)庫,僅查看是否有一個表發(fā)生了改變。SQL Server 2005探測緩存并告訴它失效,它也支持行級失效。老實說,雖然這似乎是一個非常好并且有用的特性,但它也建立了大量的廠商鎖定。

你***是使用鍵緩存讓你的應用程序的應用層來處理緩存。雖然這樣做可能不如行級改變的自動通知那樣迅速有效,但你可以用一個精心設計的數(shù)據(jù)庫來達到幾乎相同的目的:用緩存中的對象來保留記錄的主記錄ID(如雇員表的記錄ID),然后把數(shù)據(jù)庫中那個主記錄的失效層疊到其它相關的緩存項目(如那名雇員的薪水冊數(shù)據(jù))。雖然這樣做可能要付出一定的努力,但你會獲得回報,讓應用程序保持廠商中立。

雖然緩存好像是提高性能的妙方,但你必須謹慎地使用它。如果對進行緩存的數(shù)據(jù)選擇不當,就可能傷害到你的性能或浪費服務器資源,使得問題比以前更加惡化。衡量你的選項并執(zhí)行一些負載測試看看緩存是否有用。

***的方法可能是仿造應用程序的一個速成版本;一旦它模擬后端性能后(有意減速以復制處理時間),再把它放在一個現(xiàn)實的負載下,看看緩存能否提高性能。

安裝和使用頁面緩存相當方便,至少具有簡單的失效(時間、文件)規(guī)則,但試用應用程序數(shù)據(jù)緩存和更加高級的頁面失效功能可能需要預先做大量的工作才能生成現(xiàn)有的代碼。應用緩存需要提前進行規(guī)劃,而不能事后才追悔,認為它能提高性能。

【編輯推薦】

  1. .NET緩存機制探討與比對
  2. 概述ASP.NET緩存機制
  3. ASP.NET數(shù)據(jù)緩存之數(shù)據(jù)緩存淺談
  4. ASP.NET數(shù)據(jù)緩存機制淺析
  5. ASP.NET頁面輸出緩存
責任編輯:yangsai 來源: Justin James的博客
相關推薦

2009-07-31 10:23:44

緩存頁面ASP.NET緩存

2009-07-29 10:35:51

ASP.NET緩存

2009-07-31 10:33:54

ASP.NET頁面輸出

2009-08-04 15:22:33

ASP.NET緩存機制

2009-07-29 14:35:34

頁面輸出緩存ASP.NET

2009-07-27 16:37:42

ASP.NET主機

2009-08-03 18:35:51

ASP.NET數(shù)據(jù)緩存

2009-05-11 13:48:00

ASP.NET 2.0緩存效率

2009-08-17 16:59:36

ASP.NET緩存機制

2009-08-03 18:47:12

ASP.NET數(shù)據(jù)緩存

2009-07-29 16:15:03

asp.net在線學習

2009-07-29 15:34:13

2009-07-29 15:38:01

2011-10-19 09:41:15

ASP.NET性能優(yōu)化

2009-11-09 08:53:21

ASP.NET緩存

2009-07-31 09:57:47

ASP.NET數(shù)據(jù)庫緩

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-31 09:47:57

ASP.NET緩存

2009-08-17 17:36:57

ASP.NET緩存數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號