![]() |
Datentransfer über Netzwerk (schnell) (XE2 - INDY)
Datentransfer über Netzwerk (schnell)
Aufgabenstellung: Pc sendet über Netzwerk (TCP/IP) eine Datei (auf eigene Hardware) Erledigt wird das über Delphi XE2 und den mitgelieferten Indy Komponenten (IdTCPClient.IOHandler.Write(aStream, 0, false) Funktioniert soweit auch, aber es muss noch die Geschwindigkeit erhöht werden (PC-seitig). Derzeitig erreiche ich ca. 56MB/s mit einem Quadcore i5-Gigabit Netzwerkkarte. Welche Möglichkeiten habe ich die Performance zu erhöhen? (Einstellungen / andere Komponenten etc...) Was ist erfahrungsgemäß ca. die max. mögliche Datendurchsatzrate bei Gigabit Netzwerk und Indy? Irgendwelche weiteren Tips/Einstellungen? TIA, harry |
AW: Datentransfer über Netzwerk (schnell) (XE2 - INDY)
Wie schnell kannst du denn die Datei beim Client von der Platte lesen?
Wie schnell kannst du denn die Datei beim Server auf die Platte schreiben? Schreibe ein kleines Testprogramm, was einen (Memory)Stream (auf beiden Seiten!) mit unterschiedlichen Größen vom Client zu Server schickt und messe die Zeit. Damit kannst du den max. Durchsatz ermitteln. Der langsamste Part (Client lesen von Platte, Übertragung der Daten, Server schreiben auf Platte) bestimmt den max. Durchsatz für dein Programm. Klingt zwar komisch, ist aber so |
AW: Datentransfer über Netzwerk (schnell) (XE2 - INDY)
Hi,
>Wie schnell kannst du denn die Datei beim Client von der Platte lesen? ca. 400 MB/s (Solid State) >Wie schnell kannst du denn die Datei beim Server auf die Platte schreiben? ist eigene Hardware, Daten werden dort entgegengenommen und direkt ins Ram geschrieben -> ca. 85MB/s (aufgrund Hardware-Limitationen) Testprogramm derzeitig liefert ca. 56 MB/s und da sollte noch etwas "Luft" nach oben sein... Der Hardware-Entwickler meint das der PC "relativ" lange braucht um die Ack's der Datenpakete auszuwerten. Derzeit werden 6 Datenpakete a 1460 Bytes geschickt, danach die Ack's und danach die nächsten 6 Datenpakete. Mehr Datenpakete oder grössere Datenpakete schicken geht nicht (begrenzter Eingangspuffer auf Hardware). Kann ich Pc-seitig noch was unternehmen um den Datendurchsatz zu erhöhen? TIA, harry |
AW: Datentransfer über Netzwerk (schnell) (XE2 - INDY)
Zitat:
|
AW: Datentransfer über Netzwerk (schnell) (XE2 - INDY)
Wenn es wirklich um pure Geschwindigkeit geht, warum nicht gleich direkt über native WinSocket-Aufrufe? Schneller als das kann es mit Sicherheit nicht werden, oder?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz