成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET 4.0緩存功能對比談 改進明顯

開發 后端
本文將為大家用對比的方式,討論一下.NET 4.0緩存功能的演進。這些改進對于大家來說,還是相當方便的。

很多關于.NET 4.0新特性的介紹,緩存功能的增強肯定是不會被忽略的一個重要亮點。在很多文檔中都會介紹到在.NET 4.0中,緩存功能的增強主要是在擴展性方面做了改進,改變了原來只能利用內存進行緩存的局限,允許用戶在不改變代碼的情況下通過修改配置的方式,靈活的切換緩存介質。Cache Provider是可擴展的,開發人員可以方便的將緩存存放在文件中,也可以擴展使用分布式緩存。然而,由于之前已經有System.Web.Caching.Cache這個緩存對象的存在,讓我一直對.NET 4.0的新的Cache和原來已存在的System.Web.Caching.Cache的關系產生了一定的迷惑。通過這一兩天的研究,讓我慢慢解開了這層迷惑。

回顧.NET 4.0以前的緩存功能

事實上,在.NET4.0以前并沒有存在一個實際意義上的.NET Framework的緩存框架,實際上它是一個專為ASP.NET設計的緩存框架。在ASP.NET中,緩存分為兩種:輸出緩存(Output Cache)和數據緩存。輸出緩存是用在需要對已經生成好的頁面HTML或頁面中部分HTML(User Control)進行緩存,減少某些靜態內容的生成次數,從而提高請求響應時間。數據緩存,是開發人員希望緩存某些常用、并且極少更新的數據,讓這些數據緩存在內存中,以減少數據的讀取次數,從而提高程序的性能。而這兩種緩存都是使用System.Web.Caching.Cache來緩存數據。

System.Web.Caching.Cache

它是一個內存緩存的實現,并不提供緩存介質的擴展,數據直接緩存在內存中。這個對象一般情況下,我們不會自己去實例化。通常在頁面里面,我們會直接使用Page.Cache進行緩存操作,而不會去關心它是如何被實例化的。而在頁面以外的地方要使用緩存,我們可以通過全局的System.Web.Context.Current.Cache來進行緩存操作,同樣的你還可以使用System.HttpRuntime.Cache。其實如果我們通過Reflector去追蹤這幾個對象的關系,你不難發現雖然有這么多地方都有Cache對象,實際上它們都是引用同一個對象,那就是HttpRuntime.Cache這個對象。特別要注意的是,System.HttpRuntime.Cache不僅僅可用于Web環境下,它也可以在任何程序中使用,包括WinForm,Console Application,但是前提是你必須引用System.Web.dll。這也就說明了,System.Web.Caching.Cache這個對象完全是可以脫離于System.Web這個名稱空間,而作為一個獨立的緩存框架而存在。這也是我迷惑的第一個地方:System.Web.Caching.Cache會不會改變現有的實現,而直接使用新的可擴展的緩存框架?

.NET 4.0中的緩存功能全解析

.NET 4.0的緩存功功由三部分組成:System.Runtime.Caching,System.Web.Caching.Cache和Output Cache。下面分別對這三者以及它們之前的關系進行解析:

System.Runtime.Caching

這是在.NET 4.0中新增的緩存框架,存在于程序集System.Runtime.Caching.dll,在這份PPT中提到的System.Caching指的就是它。它是一個可擴展的數據緩存框架,內置提供了內存緩存的實現MemoryCache。但是它在使用上卻不是那么可擴展,除了提供ObjectCache這個抽象類外,并沒有提供可擴展的配置方案,我們無法通過配置方案來切換ObjectCache的實現,我們必須在代碼里面硬編碼我們要使用的ObjectCache實現:

 

  1. ObjectCache objectCache = MemoryCache.Default;//  

 

System.Runtime.Caching.Configuration里面的配置也是針對MemoryCache。這些配置意義在于指定每個MemoryCache實例運行的內存使用配額方案,和配額檢查周期。MemoryCache.Default的實例名稱為“Default”,這樣我們就可以通過下面的配置來更改MemoryCache.Default的內存配額:

  1. <system.runtime.caching>    
  2.  <memoryCache>    
  3.      <namedCaches>    
  4. <add name="Default" cacheMemoryLimitMegabytes="10"  pollingInterval="00:02:00"/>    
  5.     </namedCaches>    
  6.   </memoryCache>    
  7. </system.runtime.caching>   
  8.  

緩存過期策略與其它的緩存框架大同小異,與System.Web.Caching.Cache的不同只是名稱不叫CacheDependency,而叫ChangeMonitor,并且提供了基于文件和目錄的緩存依賴策略。

System.Web.Caching.Cache

原先我一直在找答案,System.WebCaching.Cache底層是否改為使用System.Runtime.Caching,得到的結果是它沒有任何的變化。

Output Cache

Output Cache有了比較大的變化,ASP.NET 4.0之前的版本都是直接使用System.Web.Caching.Cache來緩存HTML片段。在ASP.NET 4.0中對它進行了重新設計,提供了一個OutputCacheProvider供開發人員進行擴展,但是它默認情況下,仍然使用System.Web.Caching.Cache來做做緩存。關于ASP.NET 4.0的Output Cache的使用,請參考ScottGU的文章。

以上,我們可以得出的結果是,System.Runtime.Caching和Output Cache是可擴展的。并且,他們二者之間沒有任何關系,提供的擴展接口差別也非常大,需要分別進行實現。System.Runtime.Caching完全可以用于替代Enterprise Library Cache Application Block的作用,并且微軟所發布的分布式緩存框架Windows Server AppFabric應該已經提供了System.Runtime.Caching的擴展。

原文標題:全面認識一下.NET 4.0的緩存功能

鏈接:http://www.cnblogs.com/hjf1223/archive/2010/07/16/net_4_caching.html

【編輯推薦】

  1. .NET分布式緩存之Memcached執行速度檢測
  2. .NET緩存機制探討與比對
  3. 概述ASP.NET緩存機制
  4. ASP.NET數據緩存之數據緩存淺談
  5. ASP.NET數據緩存機制淺析
責任編輯:彭凡 來源: 博客園
相關推薦

2015-07-13 10:07:43

Java.NET

2009-08-17 09:30:28

.NET 4.0

2009-09-04 16:28:05

ASP.NET 4.0

2010-03-15 14:01:26

JavaScript

2009-11-06 17:10:34

ChromeFirefox功能對比

2010-09-14 13:10:36

2010-02-03 15:11:53

C++內存區域

2009-07-10 09:41:08

WCF服務配置.NET 4.0

2010-01-06 19:18:22

.NET Framew

2010-07-02 09:25:37

.NET 4.0可擴展

2013-03-22 13:31:52

App制作工具非編程

2009-03-16 12:10:02

Windows 7微軟對比

2009-12-28 10:04:59

.NET 4.0數組

2009-04-07 08:55:08

Firefox火狐瀏覽器

2025-02-14 10:16:15

2017-06-06 09:56:03

hypervisor成本功能

2010-04-26 13:48:17

iPhone OSiOSWindows Pho

2009-11-24 15:49:48

.NET 4.0 Be

2009-02-20 08:51:22

.NET框架CLR組件

2023-09-14 22:57:52

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 国产成人免费一区二区60岁 | 国产精品毛片一区二区三区 | 国产精品一区二区三区四区 | 国产欧美一区二区三区在线播放 | 999观看免费高清www | 亚洲综合区 | 亚洲视频免费在线观看 | 日本91av视频| 美女黄视频网站 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 欧美一区二区三区久久精品 | 亚洲精品视频网站在线观看 | 国产成人99久久亚洲综合精品 | 三级黄色片在线播放 | 日本一道本视频 | 97久久久久久 | 免费观看国产视频在线 | 亚洲成人精品视频 | 成人在线视频免费观看 | 国产欧美一区二区久久性色99 | 国产精品成人av | 91精品中文字幕一区二区三区 | 久久久久国产一区二区三区 | 欧美日韩不卡合集视频 | 激情91| 日韩a在线 | 国产乱码精品一区二区三区五月婷 | 国产精品美女久久久久久久网站 | 七七婷婷婷婷精品国产 | 91pron在线 | 2019天天干天天操 | 男女羞羞在线观看 | 国户精品久久久久久久久久久不卡 | 一区二区三区在线播放 | 国产真实精品久久二三区 | 99亚洲| 偷拍自拍在线观看 | 国产一区欧美 | japanhdxxxx裸体 | 一区二区三区四区av |