Java - Sektion aus großer Datei extrahieren

AW: Java - Sektion aus großer Datei extrahieren

5 Sekunden für eine 800 MB Datei finde ich noch erträglich. :ugly: Ich sehs mir trotzdem mal an.
 
AW: Java - Sektion aus großer Datei extrahieren

AFAIK bezieht sich das auf NIO.2 (mit Java 7 eingeführt). Das betrifft aber im Wesentlichen die Unterstützung von Dateisystemabstraktionen (sprich: nichtlokale Dateien über dieselbe API wie lokale Dateien). In Bezug auf Datei-IO bringt das aber nicht unbedingt Vorteile, zumindest wenn man sich nicht zu doof anstellt. Man kann sogar Szenarien basteln, wo NIO Datei-IO deutlich langsamer als klassisches Datei-IO ist.
 
AW: Java - Sektion aus großer Datei extrahieren

Wäre mir neu. Kannst du das irgendwie durch Benchmarks belegen oder wenigstens logisch begründen?

Kann mich aber natürlich auch irren. Habe die letzten Jahre kaum etwas mit Java gemacht.

Ich hab etwas gegooglt und 2 Benchmarks gesehen, auf denen I/O etwas schneller als NI/O ist, allerdings auch einen wo es genau umgekehrt ist. Generell konnte ich aber festestellen das NI/O, wie in einem Firmen internen benchmark gezeigt hat besonders bei mehreren unterschiedlichen I/Os schneller ist, da es eben nicht blockiert wie ein Stream.
Ein weiterer Vorteil ist das man direkt vom OS speicher anfordern kann, das das OS auch selbst verwaltet (daher der speicher befindet sich nicht auf dem java Heap). Das beschleunigt natürlich lesen und schreib vorgänge auf diesen Speicher.

Der wohl am ausagekräftigste Benchmark ist folgender:
Java tip: How to read files quickly | Nadeau Software

Ich selbst benutze eigentlich immer NIO finde es irgendwie angenehmer zu nutzen.
 
Zurück