缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
3.2.特 点:
缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。L1 Cache(一级缓存)是CPU第一层高速缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在32—256KB。L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。
3.3.OutputCacheAttribute:
3.3.1.介绍:
使用输出缓存,可以在 Web 服务器上的内存中存储操作方法的输出。 例如,如果操作方法将呈现一个视图,则将缓存视图页。 然后,已缓存的此页面将可供应用程序用于后续请求。 输出缓存可以节省应用程序重新创建操作方法的结果所需的时间和资源。在 ASP.NET MVC 中,可以使用 OutputCacheAttribute 特性标记要缓存其输出的操作方法。 如果使用 OutputCacheAttribute 特性标记某个控制器,则该控制器中的所有操作方法的输出都将进行缓存。
3.3.2.实例:
3.3.2.1.代码演示:
public class HomeController : Controller { [OutputCache (Duration=60)] public ActionResult Index() { return View(); } }
3.3.2.2.代码讲解:
这里我们给/Home/Index的action加了一个[OutputCache (Duration=60)]这样的Attribute,在/Home/Index的Action里打一个断点,按F5执行,你会发现只有第一次执行会进入断点,而在此60秒之内,你再怎么刷新执行,是不会进入这个断点的。这就是一个简单的60秒缓存。
在上面的代码中主要是通过参数Duration实现缓存,如果我们希望缓存的时间可以自己配置的话,我们还可以使用CacheProfile参数,具体实现方法代码如下:
C#代码
public class HomeController : Controller { [OutputCache (CacheProfile=)] public ActionResult Index() { return View(); } }
修改web.config
3.3.3.更多介绍:
关于OutputCacheAttribute呢还有很多好玩的参数,可以帮助我们实现各种你想要的缓存方式。
OutputCacheAttribute可以设置的参数有很多,根据不同的需求和业务使用的时候也不尽相同。关于更多OutputCacheAttribute的参数大家有兴趣可以看这里。
v博客总结关于监控诊断、本地化和缓存的介绍就到这里了,如果大家对这三个方向有兴趣或者延伸可以拿出来一起讨论研究。
以上部分信息来自MSDN/百度百科,在此非常感谢MSDN/百科对本篇博文的帮助,以及对博主学习/工作以及生活上的帮助。
作 者:请叫我头头哥
出 处:
关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【】一下。您的鼓励是作者坚持原创和持续写作的最大动力!