2009-12-03 78 views
3

我打算寫一個簡單的文本閱讀器,這我很期待能夠應對非常大的大小的文件。我正在考慮使用Tie::File來做這件事,還有一些分頁線。這是延遲加載線,還是一次加載所有線?Tie :: File懶惰地加載文件?

回答

8

它不會加載整個文件。從documentation

該文件沒有加載到內存中,所以即使對於巨大的文件這也可以工作。

+2

但要找到第1830234行,它必須讀取整個文件直到那一點(儘管不是全部到內存中) – ysth 2009-12-03 21:34:38

6

據我所見,從its source code它只存儲在內存中使用過的行。是的,它僅在需要時加載數據。

您可以限制所使用的內存量與memory參數。

它還跟蹤文件中所有行的偏移量以優化磁盤訪問。