2009-12-03 80 views
3

我打算写一个简单的文本阅读器,这我很期待能够应对非常大的大小的文件。我正在考虑使用Tie::File来做这件事,还有一些分页线。这是延迟加载线,还是一次加载所有线?Tie :: File懒惰地加载文件?

回答

8

它不会加载整个文件。从documentation

该文件没有加载到内存中,所以即使对于巨大的文件这也可以工作。

+2

但要找到第1830234行,它必须读取整个文件直到那一点(尽管不是全部到内存中) – ysth 2009-12-03 21:34:38

6

据我所见,从its source code它只存储在内存中使用过的行。是的,它仅在需要时加载数据。

您可以限制所使用的内存量与memory参数。

它还跟踪文件中所有行的偏移量以优化磁盘访问。