Yve*_*lpe 4 c# string performance pinvoke text
快速阅读的问题:我想知道是否有其他技术我忽略了,也许p /调用某个库(无论是winapi还是第三方库).欢迎提出所有建议.
问题的完整上下文:对于给定的用例,我需要将文本文件读入内存,然后我可以操作.问题不在于操作,而在于I/O. 我目前正在使用以下C#技术:
1)"文件"的ReadAllText()方法
var content = File.ReadAllText(file.FullName);
Run Code Online (Sandbox Code Playgroud)
2)"StreamReader"的ReadToEnd()方法
var content = String.Empty;
using(var streamReader = File.OpenText(file.FullName)) {
content = streamReader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
3)我也尝试过使用BufferedStream方法2
对于介于5到20MB之间的文件,所有文件的性能大致相同.那么,接下来的问题是:我想知道是否有其他技术我忽略了,也许p /调用某个库(无论是winapi还是第三方库).欢迎提出所有建议.
您列出的所有变体的瓶颈将是I/O. 将完整文件从磁盘读入内存的任何方法都会遇到同样的瓶颈.
因此,可以合理地得出结论,没有替代方法会产生重大收益.当然,您会发现这些方法与其他方法之间的性能略有不同.但你永远不会看到数量级的收益.