加载文件到内存的简单解释

Simple explanation about loading files into memory

"load into memory" 是什么意思?

我在网上看了一些视频,他们在谈论减少处理报告的时间,他们经常说 "you don't want to load a huge file into memory, instead read line by line."

我能举个例子说明什么是将文件(为简单起见是文本文件)加载到内存中,以及处理文件而不是将其加载到内存中的示例吗?

除了减少处理时间之外,他们所说的这些好处到底是什么?

当他们提到阅读某些内容时 "into memory" 这只是一种表示您正在阅读并将其存储在变量中(存储在内存中)的方式。

使用 ReadAllLines 将整个文件读入内存:

Dim readText() As String = File.ReadAllLines(path)

File.ReadAllLines Method (String)

使用 StreamReader 逐行读取文件:

Dim sr As StreamReader = New StreamReader(path)

Do While sr.Peek() >= 0
    Console.WriteLine(sr.ReadLine())
Loop
sr.Close()

StreamReader.ReadLine Method

正如上面的评论所提到的,最糟糕的性能影响是如果您尝试读取太大的文件,它只会崩溃。是否可以通过逐行读取在这里或那里节省一两毫秒,这取决于许多因素(文件大小、磁盘延迟等)。一般来说,您不希望使用 100 MB内存,如果你不需要的话,很多时候它并不是真正的性能,而是关于不要不必要地占用系统资源。

如果您正在处理每一行,那么逐行阅读通常也更容易编写代码。