【Application】:a program designed to do a particular job;a piece of sofeware 應用程序;應用軟件(縮寫是app)web
例句:You can run several applications at the same time. 可同時運行幾個應用程序。c#
【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 對象和用戶的關係是一一對應的。session
eg: HttpContext.Current.Application.Lock();併發
HttpContext.Current.Application["maxDate"] = strmaxDate;app
HttpContext.Current.Application.UnLock();性能
【Cache對象】: 內存做用域. 時間 能夠根據須要進行設定,用於在請求間保存頁面和數據. 通常放不須要即時更新的數據,當用戶發出相同的請求時,將Cache中保存的信息返回給用戶,節省了服務器處理請求時間. 例如: 獎牌榜, 排行榜 (隔一小段時間更新一次數據即可). ui
eg:this
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加鎖。