Ich arbeite in einer Desktop-Anwendung mit Java. In meiner Anwendung muss ich einen Geschwindigkeitstest durchführen, der die Upload- und Downloadgeschwindigkeit der Datei anzeigt.
Für den Hochlade-Test lade ich eine kleine Testdatei auf einen FTP-Server hoch und berechne basierend auf der Zeit die Datei-Upload-Geschwindigkeit. ähnlich lade ich einen Test-Datei-Formular-Server herunter und berechne Download-Geschwindigkeit.
Aber das Ergebnis, das ich erhalte, stimmt nicht mit der tatsächlichen Geschwindigkeit beim Hoch- und Herunterladen von FTP-Dateien überein. Es scheint, dass die Verbindung zum FTP-Server die Zeit erhöht, daher ist die resultierende Geschwindigkeit geringer.
Hier ist der Datei-Upload-Code, den ich verwende:
%Vor%Könnten Sie einen Link oder einen Weg vorschlagen, um die Geschwindigkeit beim Hoch- oder Herunterladen zu erhöhen?
Ich danke dir für deinen wertvollen Vorschlag.
Zunächst verwendet filezilla wahrscheinlich nativen Code, der schneller ist als das, was Sie verwenden.
Stellen Sie zum Testen eine Verbindung her und versuchen Sie, viele Dateien hochzuladen, etwa 20 oder so. Das sollte Ihnen eine gute Vorstellung vom Ergebnis geben. Üblicherweise protokollieren Sie Ihre Ausgabe auch in einer kommagetrennten Testdatei oder so ähnlich Später in Excel importieren und analysieren. Sie können etwas wie JMeter verwenden, wenn Sie einige harte Kernleistungstests durchführen möchten.
Bei jeder Art von Leistungstest mit einer großen Stichprobengröße (viele Stichprobenergebnisse) ergeben sich die genauesten Ergebnisse.
Können Sie den Timer nicht starten, nachdem die Verbindung hergestellt wurde?
Falls nicht, dann erhöhen Sie für eine schnelle Teillösung die Größe der Testdatei, je größer sie ist, desto geringer ist der Verbindungsaufwand.
Wenn Sie genauer sein müssen, dann werde ich auf jemanden mit mehr Erfahrung hava verzichten ...
Können Sie ein einfacheres Protokoll wie HTTP verwenden?
Das Einrichten einer FTP-Übertragung kann kompliziert sein: Es müssen separate Steuerungs- und Datenverbindungen eingerichtet werden, und beide Endpunkte müssen sich darauf einigen, ob der passive oder der aktive Modus verwendet wird, um Firewalls und NAT zu umgehen. Dieser Prozess kann das Ausprobieren einer der Optionen (z. B. aktiv) und das Warten auf Erfolg oder eine Zeitüberschreitung beinhalten, was möglicherweise Ihre Messungen verzerrt.