Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Вот некоторый совет от кого-то со средой, где у нас есть папки, содержащие десятки миллионов файлов.
Для ответа на вопрос более непосредственно: Если Вы смотрите на 100K записи, никакие заботы. Пойдите выводят себя из строя. Если Вы смотрите на десятки миллионов записей, то также:
a) Планируют подразделять их на подпапки (например, позволяет, говорят, что Вы имеете 100M файлы. Лучше сохранить их в 1 000 папок так, чтобы у Вас только было 100 000 файлов на папку, чем сохранить их в 1 большую папку. Это создаст 1 000 индексов папки вместо единственного большого, это, более вероятно, поразит макс. # предела фрагментов или
, b) Планируют выполнять contig.exe регулярно для хранения индекса большой папки дефрагментируемым.
Read ниже, только если Вы скучаете.
фактический предел не находится на # фрагмента, а на количестве записей сегмента данных, который хранит указатели на фрагмент.
Поэтому то, что Вы имеете, является сегментом данных, который хранит указатели на фрагменты данных каталога. Информация о хранилищах данных каталога о подкаталогах & субфайлы, что каталог, предположительно, сохранен. На самом деле каталог ничего не "хранит". Это - просто функция отслеживания и представления, которая представляет иллюзию иерархии пользователю, так как сам носитель линеен.
100,000 должен быть прекрасным.
я (анекдотическим образом) видел, что люди имеют проблемы со многими миллионами файлов, и у меня были проблемы самого с Проводником просто не наличие подсказки, как считать прошлые 60 - что-то, тысяча файлов, но NTFS должна быть хороша для объемов, Вы говорите.
В случае, если Вы задаетесь вопросом, техническое (и я надеюсь теоретический ) максимальное количество файлов: 4,294,967,295
Для локального доступа большие количества каталогов/файлов, кажется, не проблема. Однако при доступе к нему через сеть существует значимый хит производительности после нескольких сотен (особенно, когда получено доступ от машин Vista (XP к Windows Server w/NTFS, казалось, работал намного быстрее в том отношении)).
При создании папки с записями N Вы создаете список объектов N на уровне файловой системы. Этот список является структурой совместно используемых данных в масштабе всей системы. Если Вы тогда начнете изменять этот список непрерывно путем добавления/удаления записей, я ожидаю, по крайней мере, некоторую конкуренцию за блокировку по совместно используемым данным. Эта конкуренция - теоретически - может негативно влиять на производительность.
Для сценариев только для чтения я не могу вообразить причину снижения производительности каталогов с большим количеством записей.
Существуют также проблемы производительности с созданием короткого имени файла, замедляющим вещи. Microsoft рекомендует выключить создание короткого имени файла, если у Вас есть больше, чем 300k файлы в папке [1]. Чем менее уникальны первые 6 символов, тем больше проблемы это.
[1] Как Работы NTFS из http://technet.microsoft.com, ищите "300,000"