在C# / ASP.NET中需要手动缓存静态文件吗?

4
我有一个类,正在创建一个 StreamReader 实例来访问本地文件系统上的一个 xml 文件。 可能会有多个请求每秒钟请求相同的文件。
我想知道是否需要手动将该文件添加到 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(虽然不从性能角度讨论,但也许出于其他原因)列出了如何将物理文件添加到缓存中。
1个回答

2
我认为缓存文件可能并不是很有用,因为它与页面位于同一服务器上,虽然它可能会被IIS自动缓存。相反,您应该缓存 StreamReader 的输出。在读取xml后将其存储起来,这样您就可以节省将其读入和处理成可用格式所需的时间。然后,您可以手动将其添加到 HttpRuntime.Cache 中,并且您甚至可以设置文件依赖项以使缓存过期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接