【问题标题】:Max file size for File.ReadAllLinesFile.ReadAllLines 的最大文件大小
【发布时间】:2010-03-31 14:50:05
【问题描述】:

我需要阅读和处理一个文本文件。如果我可以使用File.ReadAllLines 方法,我的处理会更容易,但我不确定使用此方法可以读取的文件的最大大小是多少,而无需按块读取。 我了解文件大小取决于计算机内存。但是对于普通机器还有什么建议吗?

【问题讨论】:

标签: vb.net file


【解决方案1】:

在 32 位操作系统上,您最多可以获得大约 550 兆字节的连续内存块,允许加载一半大小的文件。在您的程序运行一段时间并且虚拟内存地址空间变得碎片化之后,这种情况会迅速下降。 100 兆字节几乎是您所希望的。

这在 64 位操作系统上不是问题。

由于一次读取一行文本文件与读取所有行一样快,所以这绝不是一个真正的问题。

【讨论】:

    【解决方案2】:

    我以前用 1-2GB 做过类似的事情,尽管是在 Python 中。不过,我认为 .NET 不会有问题。但我只会为一次性处理这样做。

    如果您定期执行此操作,您可能需要逐行浏览文件。

    【讨论】:

      【解决方案3】:

      除非您知道文件大小与正在运行的应用程序中可用的计算机内存,否则它的设计很糟糕。

      更好的解决方案是考虑memory mapped files。他们将自己用作页面文件存储,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        相关资源
        最近更新 更多