c# application與cache的區別


c# application與cache的區別

轉載 2016-03-16 15:36:15

【Application】:a program designed to do a particular job;a piece of sofeware 應用程序;應用軟件(縮寫是app)

例句:You can run several applications at the same time. 可同時運行幾個應用程序。

【Cache】:a part of a computer's memory that stores copies of data that is offen needed while a program is running.this data can be accessed very quickly.(計算機存儲器的一部分,用於拷貝程序運行時所需的數據,使數據可以運轉的很快。)高速緩沖存儲器

 

在C# 中,分別指的是Application對象和Cache對象

【Application對象】: 應用程序作用域,表示用來保存所有用戶(瀏覽器)共享的數據,直到Web服務器或pc關閉為止,共享的數據才會消失的。但盡量避免過多使用,會降低服務器性能.其實 application對象就是個應用級別的對象,用來在所有的用戶之間共享信息,並可以在web應用程序運行期間持久的保持數據。同時如果不加以限制,所有的客戶都可以訪問這個對象。 例如:聊天室的在線人數.. 使用時最好鎖,避免數據混亂。Application 對象用於存儲和訪問來自任何頁面的變量,類似於 session 對象。不同之處在於,所有的用戶分享一個 Application 對象,而 session 對象和用戶的關系是一一對應的。

eg: HttpContext.Current.Application.Lock();

                HttpContext.Current.Application["maxDate"] = strmaxDate;

                HttpContext.Current.Application.UnLock();

【Cache對象】: 內存作用域. 時間 可以根據需要進行設定,用於在請求間保存頁面和數據. 一般放不需要即時更新的數據,當用戶發出相同的請求時,將Cache中保存的信息返回給用戶,節省了服務器處理請求時間. 例如: 獎牌榜, 排行榜 (隔一小段時間更新一次數據便可). 

eg:

  HttpRuntime.Cache.Insert(sRuntimeKey, m_ControlInfo, null, DateTime.UtcNow.AddHours(TSCacheUtility.GetRefTime("cacheTime_con", 24)), Cache.NoSlidingExpiration);​​

相同點:1. 二者存儲的變量的有效范圍都是整個應用程序的生命周期。2. 二者都可以存貯對象。

不同點:1. application是在asp階段使用的,后來升級到.net后,使用的是cache,但為了向前兼容,依然保留了application。

2. cache比application使用更加靈活,功能更強大。cache可以設置每一個item的優先級,當服務器內存不夠時,將對cache進行壓縮,將一些很長時間沒使用的或者優先級低的item從cache中移去。3.cache中可設置某個item的依賴性,依賴的對象可以是 cache中的其他item或者是某個文件。當依賴的item或者文件發生改變時,此item的內容會自動更新或者移除。4.效率上,cache 要比application高,部分原因是因為appliction並發訪問時需要調用lock和unlock,這將所有的application變量全鎖定,而cache內部實現了並發訪問時的互鎖,每次可以只對某一個item加鎖,而不是對整個cache加鎖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM