2

我正在读取数百甚至数千个文件中的某些偏移量。因为在那个特定时间我只需要来自某些偏移量的某些数据,所以我必须保持文件句柄打开以供以后使用,或者我可以将我需要的部分写入单独的文件中。

我认为保持所有这些文件句柄处于打开状态而不是对新临时文件的磁盘进行大量写入是两害相权取其轻的做法。我只是担心打开这么多文件句柄的效率。

通常,我会打开一个文件,寻找一个偏移量,读取一些数据,然后 5 秒后在另一个偏移量处做同样的事情,并在 2 分钟的时间内对数千个文件执行所有这些操作。

这会是个问题吗?

跟进:真的,我在问哪个更好,让这数千个文件句柄保持打开状态,或者在我瞬间需要它们时不断关闭它们并重新打开它们。

4

2 回答 2

4

某些系统可能会限制单个进程可以同时打开的文件描述符的数量。1024 是一个常见的默认值,因此如果您需要一次打开“数千个”,您可能希望在可移植性方面犯错,并将您的应用程序设计为使用较小的打开文件描述符池。

于 2010-08-10T06:18:25.833 回答
3

我建议你看看Storage.py. BitTorrent它包括一个文件句柄池的实现。

于 2010-08-10T09:06:01.157 回答