Gibt es eine Problemumgehung für Javas schlechte Leistung beim Durchgehen riesiger Verzeichnisse?

Ich versuche, Dateien einzeln zu verarbeiten, die über ein Netzwerk gespeichert sind. Das Lesen der Dateien geht schnell, da das Puffern nicht zum Problem wird. Ich habe nur das Problem, die Verzeichnisse in einem Ordner aufzulisten. Ich habe mindestens 10k Dateien pro Ordner über viele Ordner.

Performance ist sehr langsam, da File.list () ein Array anstelle eines iterablen zurückgibt. Java sammelt alle Namen in einem Ordner und packt sie in ein Array, bevor es zurückkehrt.

Der Fehlereintrag dafür isthttp: //bugs.sun.com/view_bug.do; jsessionid = db7fcf25bcce13541c4289edeb4? bug_id = 4285834 und hat keine Arbeit um. Sie sagen nur, dass dies für JDK7 behoben wurde.

Ein paar Fragen

Hat jemand eine Problemumgehung für diesen Leistungsengpass? Versuche ich das unmögliche zu erreichen? Wird die Leistung immer noch schlecht sein, selbst wenn nur die Verzeichnisse durchlaufen werden?Könnte ich die Beta-JDK7-Builds verwenden, die über diese Funktionalität verfügen, ohne mein gesamtes Projekt darauf aufbauen zu müssen?

Antworten auf die Frage(20)

Ihre Antwort auf die Frage