Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# File.ReadAllText缓存的使用_C#_Asp.net - Fatal编程技术网

C# File.ReadAllText缓存的使用

C# File.ReadAllText缓存的使用,c#,asp.net,C#,Asp.net,我想知道方法File.ReadAllText的行为 下面是我的代码示例: uxJavaScriptTinyMCEDisplayer.Text = File.ReadAllText(Server.MapPath("TinyMCEJavaScriptAdmin.txt")); File.ReadAllText是否有缓存行为?那么,当文件第一次被读取时,会被保存在内存中,而不会再次读取吗 谢谢无缓存。它将以给定路径读取文件的当前内容。无缓存。它将以给定路径读取文件的当前内容。在.Net中没有直接缓存

我想知道方法File.ReadAllText的行为 下面是我的代码示例:

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()
。原始磁盘读取可以保存在内存中,因此对相同数据的后续读取请求不需要命中磁盘。