Наличие нескольких файловых указателей, открытых одновременно, хорошо? - PullRequest
2 голосов
/ 10 августа 2010

Я читаю с определенных смещений в несколько сотен и, возможно, тысяч файлов.Поскольку в это конкретное время мне нужны только определенные данные из определенных смещений, я должен либо оставить дескриптор файла открытым для последующего использования, либо я могу записать нужные мне части в отдельные файлы.Открытое, а не выполнение значительного объема записи на диск новых временных файлов - меньшее из двух зол.Меня просто беспокоит эффективность открытия такого количества файловых дескрипторов.

Обычно я открываю файл, ищу смещение, читаю некоторые данные, затем через 5 секунд делаю то же самое, но с другимсмещение, и сделайте все это с тысячами файлов в течение 2 минут.

Это будет проблемой?

Продолжение: Действительно, я спрашиваю, что лучше оставитьэти тысячи файловых дескрипторов открываются или постоянно закрываются и снова открываются именно тогда, когда они мне мгновенно нужны.

Ответы [ 2 ]

4 голосов
/ 10 августа 2010

Некоторые системы могут ограничивать количество файловых дескрипторов, которые могут быть открыты одним процессом одновременно.1024 - это стандартное значение по умолчанию, поэтому, если вам нужно открыть «тысячи» одновременно, вы можете ошибиться из-за переносимости и спроектировать ваше приложение для использования меньшего пула дескрипторов открытых файлов.

3 голосов
/ 10 августа 2010

Я рекомендую вам взглянуть на Storage.py в BitTorrent.Он включает в себя реализацию пула файловых дескрипторов.

...