welcher Reihenfolge sollte ich GzipOutputStream
und BufferedOutputStream
Für Objektströme, fand ich, dass sowohl um die gzip-Stream für die gepufferte Strom Einwickeln Eingang und Ausgang war fast immer deutlich schneller . Je kleiner die Objekte, desto besser. Besser oder gleich in allen Fällen dann kein gepufferter Stream.
ois = new ObjectInputStream(new BufferedInputStream(new GZIPInputStream(fis)));
oos = new ObjectOutputStream(new BufferedOutputStream(new GZIPOutputStream(fos)));
jedoch, für Text und gerade Byte-Streams, fand ich, dass es einen toss war - mit dem gzip Strom um den gepufferten Strom nur wenig besser zu sein. Aber besser in allen Fällen dann kein gepufferter Stream.
reader = new InputStreamReader(new GZIPInputStream(new BufferedInputStream(fis)));
writer = new OutputStreamWriter(new GZIPOutputStream(new BufferedOutputStream(fos)));
Ich lief jede Version 20 mal und abgeschnitten den ersten Lauf und gemittelt den Rest. Ich habe auch gepuffert-gzip gepuffert, was etwas besser für Objekte und schlechter für Text war. Ich habe überhaupt nicht mit Puffergrößen gespielt.
Für die Objektströme getestet I 2 serialisierten Objektdateien in dem 10s Megabyte.Für die größere Datei (38 MB) war es 85% schneller beim Lesen (0,7 gegenüber 5,6 Sekunden), aber tatsächlich etwas langsamer beim Schreiben (5,9 gegenüber 5,7 Sekunden). Diese Objekte hatten einige große Arrays, was möglicherweise größere Schreibvorgänge bedeutet.
method crc date time compressed uncompressed ratio
defla eb338650 May 19 16:59 14027543 38366001 63.4%
Für die kleinere Datei (18MB), war es 75% schneller zum Lesen (1,6 im Vergleich zu 6,1 Sekunden) und 40% schneller zum Schreiben (2,8 im Vergleich zu 4,7 Sekunden). Es enthielt eine große Anzahl kleiner Objekte.
method crc date time compressed uncompressed ratio
defla 92c9d529 May 19 16:56 6676006 17890857 62.7%
Für den Text-Leser/Schreiber ich eine 64mb CSV-Textdatei verwendet. Der gzip-Stream um den gepufferten Stream war 11% schneller beim Lesen (950 gegenüber 1070 Millisekunden) und etwas schneller beim Schreiben (7,9 gegenüber 8,1 Sekunden).
method crc date time compressed uncompressed ratio
defla c6b72e34 May 20 09:16 22560860 63465800 64.5%
"Sie möchten sie komprimieren, sodass Sie BIS mit einem GIS umbrechen" - GIS komprimiert nicht. Es dekomprimiert. FWIW Ich habe Mühe, Ihren allgemeinen Punkt im letzten Teil Ihrer Antwort zu verstehen. – bacar