【问题标题】:Necessary to manually cache static files in C# / ASP.NET?需要在 C#/ASP.NET 中手动缓存静态文件吗?
【发布时间】:2011-05-17 06:29:43
【问题描述】:

我有一个类正在为本地文件系统上的 xml 文件创建 StreamReader 的实例。 同一文件可能每秒被请求多次。

我想知道我是否需要手动将此文件添加到 System.Web.Cache 并从那里读取它,或者 Windows 本身是否足够聪明地缓存该项目本身以便它“知道”ASP.NET 何时请求此文件第二次/第三次等它不必进行磁盘查找/读取操作并将其从自己的缓存中拉出?

这篇文章:http://dotnetperls.com/file-read-benchmarks 似乎支持这一点,但这篇:文章:http://msdn.microsoft.com/en-us/library/18c1wd61%28v=VS.100%29.aspx(虽然没有从性能角度讨论,可能完全出于其他原因)列出了如何将物理文件添加到缓存中。

【问题讨论】:

    标签: c# asp.net windows caching


    【解决方案1】:

    我不认为缓存文件会很有用,因为它与页面驻留在同一台服务器上,尽管它可能会被 IIS 自动缓存。相反,您应该缓存的是 StreamReader 的输出。在您读入 xml 后存储它,然后您将节省读取它所需的时间以及您为将其转换为可用格式所做的任何处理。

    然后您可以手动将其添加到 HttpRuntime.Cache 中,您甚至可以设置对原始文件的文件依赖,以使缓存的输出过期。

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 2014-02-28
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2013-09-24
      • 1970-01-01
      • 2016-04-17
      相关资源
      最近更新 更多