2013-12-12 67 views
0

我正在研究Caching Application Enterprise Library,它由System.Runtime.Caching类弃用。对于这种缓存概念,为什么我应该使用这些缓存框架,而不是仅仅使用我的程序中的一些全局对象,这些对象可以将对象保存在我的软件的生命周期中,并且如果需要这些对象可以保存在数据库或文件系统中。使用它有什么好处?仅仅是因为线程安全的目的,或者我应该何时使用它来代替我自己的全局对象?为什么我应该在我的代码中使用缓存?

有人能给我,我应该在项目中(例如,多线程)纳入该缓存机制现实生活中的好方案。

感谢,

回答

1

缓存库的有用的部分是,一些条件得到满足后,便可以自动从缓存中删除的项目(通常是一段时间后)。

一个很好的理由,开始在项目中使用缓存以提高性能。如果你有一个网站,需要查询每个页面加载数据库,您可以缓存数据库结果,使你的网页不每次都需要打到数据库。这可以显着增加网页加载时间,并且可以让您的网站为更多用户提供服务。

当你使用缓存,是为提高性能交易实时数据。知道何时过期缓存项目以防止使用过时的数据是“two hard things in computer science”之一。

1

种类广泛的问题,但在这里就是为什么你可能想使用一个System.Runtime.Caching.MemoryCache而不是一个全局对象:

  • 您拥有控制权,这将是的内存量由MemoryCache使用。
  • MemoryCache是​​线程安全的。尽管对缓存本身的访问是线程安全的,但这并不意味着缓存中的项是线程安全的。
  • 您放入高速缓存可以有自己的到期或驱逐策略,你可以挂接到火项从缓存中删除时,事件的每个项目。
  • 有内置的性能计数器,让你监控的MemoryCache的性能。
相关问题