C# File.ReadAllText缓存的使用
我想知道方法File.ReadAllText的行为 下面是我的代码示例:C# File.ReadAllText缓存的使用,c#,asp.net,C#,Asp.net,我想知道方法File.ReadAllText的行为 下面是我的代码示例: uxJavaScriptTinyMCEDisplayer.Text = File.ReadAllText(Server.MapPath("TinyMCEJavaScriptAdmin.txt")); File.ReadAllText是否有缓存行为?那么,当文件第一次被读取时,会被保存在内存中,而不会再次读取吗 谢谢无缓存。它将以给定路径读取文件的当前内容。无缓存。它将以给定路径读取文件的当前内容。在.Net中没有直接缓存
uxJavaScriptTinyMCEDisplayer.Text = File.ReadAllText(Server.MapPath("TinyMCEJavaScriptAdmin.txt"));
File.ReadAllText是否有缓存行为?那么,当文件第一次被读取时,会被保存在内存中,而不会再次读取吗
谢谢无缓存。它将以给定路径读取文件的当前内容。无缓存。它将以给定路径读取文件的当前内容。在.Net中没有直接缓存,但是,您可以通过操作系统间接获得缓存行为 Windows非常优化,可以在内存中缓存文件内容,并且有一个层可以方便地在内存中缓存文件系统内容。但正如弗里德里克在评论中指出的那样,你不应该依赖这种行为,因为内存压力、缓存老化等可能意味着缓存内容会被删除 如果内存充足,操作系统在缓存方面做得很好 更新 这是一篇旧文章(Win2K),但提供了一些有关操作系统磁盘缓存的想法
在.Net中没有直接缓存,但是,您可以通过操作系统间接获得缓存行为 Windows非常优化,可以在内存中缓存文件内容,并且有一个层可以方便地在内存中缓存文件系统内容。但正如弗里德里克在评论中指出的那样,你不应该依赖这种行为,因为内存压力、缓存老化等可能意味着缓存内容会被删除 如果内存充足,操作系统在缓存方面做得很好 更新 这是一篇旧文章(Win2K),但提供了一些有关操作系统磁盘缓存的想法
这取决于您的操作系统。根据内存条件和文件大小,它可能会在内存中缓存一段时间,但你不应该依赖它。@Frédéric我刚刚用Reflector检查了ReadAllText方法的源代码,在任何地方都看不到任何缓存,刚刚跟踪到在
kernel32.dll
中调用ReadFile
方法-在什么条件下可以缓存它?@Shadow Wizard,我的意思是操作系统本身执行缓存,级别甚至低于ReadFile()
。原始磁盘读取可以保存在内存中,因此对相同数据的后续读取请求不需要访问磁盘。这取决于您的操作系统。根据内存条件和文件大小,它可能会在内存中缓存一段时间,但你不应该依赖它。@Frédéric我刚刚用Reflector检查了ReadAllText方法的源代码,在任何地方都看不到任何缓存,刚刚跟踪到在kernel32.dll
中调用ReadFile
方法-在什么条件下可以缓存它?@Shadow Wizard,我的意思是操作系统本身执行缓存,级别甚至低于ReadFile()
。原始磁盘读取可以保存在内存中,因此对相同数据的后续读取请求不需要命中磁盘。