# Frage zur Performance



## homer65 (1. Aug 2006)

Hallo Leute,
um übers Netzwerk Daten zu verschicken benutze ich gerne ObjectOutput- bzw ObjectInputStream. Das funktioniert auch tadellos. Ich würde gerne dabei bleiben. Aber wie sieht es mit der Performance aus, wenn man große Datenmengen transferieren will? Ich habe damit noch keine Erfahrungen. Gibt es eventuell schnellere Methoden um Daten zu übertragen? 
Christian


----------



## foobar (1. Aug 2006)

Du könntest die Daten gzip-komprimieren.


----------



## muckelzwerg (1. Aug 2006)

Die Performance der Streams wird kaum interessant sein,
wenn Du nicht gerade ein extrem performantes Netz und sehr schwache Rechner hast.
Also beibt nur Datenreduzierung.
Du kannst mal schauen, ob Du viele Daten mitschickst, die Du gar nicht
brauchst, oder viel kleiner codieren kannst.
Wenn ja, kannst Du die Objekte auf kleinere byte[] runterbrechen,
und die dann per write() rausschicken.

  --  --  muckelzwerg


----------



## homer65 (1. Aug 2006)

Erst mal Danke für die Tipps. Also gut, bleiben wir mal bei der Idee die Daten zu komprimieren. Bietet Java dafür irgentwelche Klassen? Falls nicht, wäre ich auf externe Programme angewiesen. Dann wäre das ganze nicht mehr Betriebssystemunabhängig. Wäre aber nicht dramatisch, da das Ganze sowieso unter Linux laufen soll. Kennt jemand Komprimierungsprogramme für Linux? Mir fällt erst mal tar ein, aber vielleicht habt ihr andere Ideen.


----------



## AlArenal (1. Aug 2006)

Tar ist kein Komprimierungsprogramm. Tar erstellt lediglich Archive, fasst also Dateien und Verzeichnisse zusammen. Aber ich kann dich beruhigen, Java kann von Haus aus auch zippen.


----------



## homer65 (1. Aug 2006)

Doch tar kann mittels der Option z auch komprimieren. Aber AlArenal hatt natürlich Recht, es ist nicht der Hauptzweck von tar. Interessanter finde ich schon das Java auch zippen kann. Die Frage ist nur wie? Wie heissen denn die entsprechenden Klassen?


----------



## AlArenal (1. Aug 2006)

Mit java.util.zip haste gleich ein ganzes Package...

http://javaalmanac.com/egs/java.util.zip/pkg.html


----------



## AlArenal (1. Aug 2006)

homer65 hat gesagt.:
			
		

> Doch tar kann mittels der Option z auch komprimieren.



Ja, aber man benutzt es nicht, um einzelne Dateien zu komrpimieren.. geschweige denn ObjectStreams


----------



## foobar (1. Aug 2006)

> Doch tar kann mittels der Option z auch komprimieren. Aber AlArenal hatt natürlich Recht, es ist nicht der Hauptzweck von tar. Interessanter finde ich schon das Java auch zippen kann. Die Frage ist nur wie? Wie heissen denn die entsprechenden Klassen?


Der Hauptzweck von tar war eigentlich wie der Name schon sagt *T*ape *AR*chiver, das Bandlaufwerk anzusprechen.


----------



## homer65 (1. Aug 2006)

Ich bedanke mich bei euch für die Hinweise und werde wohl die Beispiele aus dem Java Developers Almanac benutzen.  :wink:


----------



## muckelzwerg (1. Aug 2006)

Tar zippt nicht. (würde auch dem Grundgedanken widersprechen)
Mit der Option "-z" kann man aber beim Erzeugen eines Tar Archivs
die Komprimierung mit "gzip" anstoßen.
Mit "-j" wird "bzip2" verwendet.

  --  --  muckelzwerg


----------

