Подсчет количества файлов в каталоге с помощью Java

В Javascript GC не представляет большой проблемы для потенциального злоупотребления информацией, доступной в объектах. Это сами объекты. С современными инструментами разработчика можно легко войти в любую часть кода переднего плана и понять его, если он не запутан. ИМО, в наши дни обфускация в значительной степени необходима. Во-первых, это уменьшает размер файла, а во-вторых, это затрудняет использование кода в производстве.

Теперь перейдем к актуальному вопросу. Как только новый экземпляр new Auth назначен на client, на старый экземпляр больше нет жестких ссылок со стороны client, поэтому он имеет право на сборку мусора, если другие ссылки не хранятся. Нет гарантии, насколько быстро будет восстановлена ​​память.

И преимущество использования let заключается в его объеме. Это ограничено его блоком. Тем не менее, нередко иметь огромные блоки. По сравнению с глобальными переменными let предлагает вам небольшую область действия и, следовательно, может быть выпущен вскоре после окончания блока. Может также случиться, что среда выполнения Javascript может использовать стек методов для переменных let, и как только блок заканчивается (метод), он удаляет стек и, следовательно, ссылки также удаляются.

Наконец, абсолютно нормально, что так оно и есть, и ваша реализация не дает никаких преимуществ по сравнению с предыдущей.

62
задан Paŭlo Ebermann 30 June 2011 в 01:41
поделиться

4 ответа

Это не могло бы подходить для Вашего приложения, но Вы могли всегда пробовать собственный вызов (использующий jni или jna), или должностное лицо определенная для платформы команда и читать вывод перед отступанием к списку () .length. На *отклоняют, Вы могли должностное лицо ls -1a | wc -l (отметьте - это - dash-one-a для первой команды и dash-lowercase-L для второго). Не уверенный, что было бы правильным на окнах - возможно, просто a dir и ищите сводку.

Прежде, чем обеспокоиться чем-то вроде этого я настоятельно рекомендовал бы, чтобы Вы создали каталог с очень большим количеством файлов и просто видели, занимает ли список () .length действительно слишком много времени. Как этот блоггер предполагает, Вы не можете хотеть потеть это.

Я, вероятно, пошел бы с ответом Varkhan сам.

12
ответ дан Adam Arold 24 November 2019 в 16:38
поделиться

К сожалению, я полагаю, что это уже - лучший способ (хотя list() немного лучше, чем listFiles(), так как это не создает File объекты).

16
ответ дан Michael Myers 24 November 2019 в 16:38
поделиться

А-ч... объяснение для того, чтобы не иметь простой метод в Java, чтобы сделать, который является абстракцией хранилища файлов: некоторые файловые системы не могут иметь количества файлов в каталоге, легко доступном..., что количество даже не может иметь никакого значения вообще (см., например, распределенный, файловые системы P2P, фс, которые хранят списки файлов как связанный список или поддержанные базой данных файловые системы...). Таким образом да,

new File(<directory path>).list().length

вероятно, Ваш лучший выбор.

80
ответ дан erickson 24 November 2019 в 16:38
поделиться

К сожалению, как mmyers сказал, File.list () о том, с такой скоростью, как Вы собираетесь получить Java использования. Если скорость так важна, как Вы говорите, можно хотеть рассмотреть выполнение этой конкретной операции с помощью JNI. Можно затем адаптировать код в соответствии с конкретной ситуацией и файловой системой.

1
ответ дан Sebastian Celis 24 November 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: