【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加锁。