“加载到内存中”是什么意思?
我在网上观看了一些他们在谈论缩短处理报告时间的视频,并且他们经常说“你不想将大文件加载到内存中,而是逐行读取。”
我是否可以举例说明将文件(简单来说是文本文件)加载到内存中的示例,以及处理文件而不将其加载到内存中的示例。
除了缩短处理时间外,他们谈到的这些好处究竟是什么?
答案 0 :(得分:1)
当他们提到“读入内存”时,它只是一种说法,你正在阅读它并将其存储在变量中(将其存储在内存中)。
使用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的记忆如果你不需要,那么大部分时间它都不是关于性能的,而是不会不必要地占用系统资源。
如果您正在处理每一行,如果您逐行阅读,通常也更容易编码。