# Java /Matrizen senden über TCP/IP / double



## viktory_hh (18. Apr 2007)

Hallo an alle, ich habe folgendes Problem: ich möchte sehr große (ca. 1000x1000) Matrizen (sehr viele ca. 10 bis 20 ) über Netzwerk zw. mehreren Rechnern senden. Ich mache das zur Zeit über DataOutputStream und DataInputStream, double für double. Es scheint aber für mich bestimmt nicht ganz effizient zu sein. Gibt's es zu diesem Zweck bessere Möglichkeiten. Kann man die DataOutput/InputSreams in irgendwelche Stream einpacken, so dass das Senden schneller abläuft. Oder kann man mit irgendwelchen spez. Readern double lesen/schreiben. Ich bin leider kein Java-Profi und verwende Java nur ab und zu, deswegen fehlt es für mich immer schwer die passenden Klassen zu wählen. 

Ich danke an alle.


----------



## GoWa (20. Apr 2007)

Vielleich läst sich da etwas über die zip funktion machen.
Also daten verpacken diesen Textstream zippen und schicken und danach entpacken.
Sollte zumindest das Datenvolumen verkleinern.
Bei vielen Packeten (also wen die Matrizen oft gesendet werden) hat das bestimm deutliche Nachteile auf die Performace der Endprogramme.

Sollte ich mumpitz schreiben schiebe ich es darauf das ich auch noch anfange. Wollte nur mal ne Idee einbringen


----------



## MartinRuopp (26. Apr 2007)

Sind also 20x1000x1000x8 Byte = 160Mbyte.

Selbst wenn Du auf die Genauigkeit der Doubles verzichtest und nur Floats verwendest, ist es immer noch die Hälfte...
Stellt sich die Frage, was Du wirklich verschickst, d.h. worin die Redundanzen liegen. Vielleicht ist ja auch ein verlustbehaftetes Pack-Verfahren sinnvoll?

Gruß,
Martin
http://www.mruopp.de


----------

