2010-06-21 3 views
2

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

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

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

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

+0

У операционной системы также есть предел. – jjnguy

ответ

2

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

В Linux, вы можете изменить этот предел, установив

ULIMIT -n max_open_files

0

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

все ограничения
0

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

Смежные вопросы