Tag zusammen.
Ich übertrage mit einem Programm Dateien übers lokale Netzwerk (LAN/WLAN)
Das mache ich derzeit mit dem "Standard-Verfahren":
Server: (verkürzt)
Client genauso, liest in den Puffer und schreibt den in die Datei.
Natürlich sind alle Ströme BufferedStreams
Über LAN funktioniert das meistens gut, aber besonders über WLAN ist das furchtbar langsam.
Also:
- Wie kann ich das optimieren und beschleunigen? (besonders für WLAN)
- Spielt die Puffergröße eine entscheidende Rolle für die Übertragungsgeschwindigkeit? (dass bei einem kleinen Puffer zu oft von der Platte gelesen werden müsste ist mir klar, es geht mir um den Einfluss auf die tatsächliche Übertragung
- Würde die Verwendung von java.nio eine in der Praxis tatsächlich relevante Verbesserung der Geschwindigkeit bringen?
- Oder gibt es ein ganz anderes Verfahren, das viel besser geeignet wäre?
Ich übertrage mit einem Programm Dateien übers lokale Netzwerk (LAN/WLAN)
Das mache ich derzeit mit dem "Standard-Verfahren":
Server: (verkürzt)
Java:
byte[] buffer = new byte[32*1024];
int bytesRead;
while ((bytesRead = input.read(buffer, 0, buffer.length)) > 0)
{
output.write(buffer, 0, bytesRead);
}
Client genauso, liest in den Puffer und schreibt den in die Datei.
Natürlich sind alle Ströme BufferedStreams
Über LAN funktioniert das meistens gut, aber besonders über WLAN ist das furchtbar langsam.
Also:
- Wie kann ich das optimieren und beschleunigen? (besonders für WLAN)
- Spielt die Puffergröße eine entscheidende Rolle für die Übertragungsgeschwindigkeit? (dass bei einem kleinen Puffer zu oft von der Platte gelesen werden müsste ist mir klar, es geht mir um den Einfluss auf die tatsächliche Übertragung
- Würde die Verwendung von java.nio eine in der Praxis tatsächlich relevante Verbesserung der Geschwindigkeit bringen?
- Oder gibt es ein ganz anderes Verfahren, das viel besser geeignet wäre?