Существуют ли практические ограничения на количество открытых файлов в Java? - PullRequest
2 голосов
/ 21 июня 2010

Я встроил некоторые функции сортировки файлов в приложение Java, и оно предназначено для сортировки файлов размером более 20 ГБ.Общий подход заключается в чтении файла по частям, сортировке каждого куска в памяти, а затем записи его в свой собственный временный отсортированный файл.На втором этапе я одновременно открываю все файлы чанков и объединяю их в окончательный отсортированный файл.

Мне интересно, есть ли какие-то практические ограничения, о которых следует знать при открытии и чтении большого количества файлов?файлы одновременно?

На моей собственной машине (Mac OS X) я смог прочитать> 250 файлов без проблем.Возможно, кто-то знает об ограничениях, которые могут применяться к другим платформам?

Спасибо за ваше время.

Ответы [ 3 ]

2 голосов
/ 21 июня 2010

Несмотря на то, что в Java нет определенного ограничения, ОС накладывает ограничение на количество открытых файлов на процесс.

В Linux вы можете изменить это ограничение, установив

ulimit -n max_open_files

0 голосов
/ 21 июня 2010

Это зависит от платформы, jvm, например, будет счастливо открывать файлы в linux, пока не достигнет максимального числа дескрипторов открытых файлов (помните, что в сокетах unix также есть дескрипторы файлов).

0 голосов
/ 21 июня 2010

В Linux, по крайней мере, вы можете проверить с помощью ulimit -n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...