Ich habe ein Programm, das auf zwei verschiedenen Computern läuft: Server und Client. Ich möchte die Latenz über das Netzwerk in meinem Programm in C++ und Java messen. Die normalen Befehle zum Messen der Laufzeit (wie gettimeofday
in C) sind meiner Meinung nach für die Lauflatenz über das Netzwerk nicht sehr genau. Ein Ratschlag?Messung der Latenz über das Netzwerk
Antwort
können Sie die genaue Zeit messen mit std::chrono
#include <chrono>
auto timeStart = std::chrono::high_resolution_clock::now();
// do something... wait for result...
auto timeEnd = std::chrono::high_resolution_clock::now();
long long duration = std::chrono::duration_cast<std::chrono::microseconds>(timeEnd - timeStart).count();
ersetzen microseconds
mit nanoseconds
, milliseconds
, seconds
Dauer in verschiedenen Einheiten zu erhalten.
Sie auch können std::clock verwenden, obwohl es weniger genaue Messungen liefern könnten:
#include <ctime>
std::clock_t timeStart = std::clock();
// do something... wait for result...
std::clock_t timeEnd = std::clock();
double durationMs = 1000.0 * (timeEnd-timeStart)/CLOCKS_PER_SEC;
Danke für die Antwort !! – PRVS
Dies gilt für Ende-zu-Ende-Latenz? – PRVS
@PRVS Mithilfe von Uhr- oder Chrono-Timern können Sie die Zeitdauer messen, die für bestimmte Aktionen benötigt wird. Wenn Sie also etwas an den Server senden und auf eine Antwort warten, können Sie die Gesamtdauer messen, die ungefähr die Umlaufzeit zwischen Ihnen und Ihrem Server schätzen sollte. – Pavel
- 1. Timer zur Messung der Latenz
- 2. Datenbank-Netzwerk-Latenz
- 3. Hohe Latenz für Linux-Netzwerk-App
- 4. Java-Bibliothek zur Messung von Bandbreite, Latenz, Hop-Count?
- 5. Messung der Geschwindigkeit über iPhone SDK
- 6. ASP.Net Server-Ausführungszeit ohne Netzwerk-Latenz erfassen
- 7. Pulseaudio-Mikrofon über das Netzwerk
- 8. Ordner über das Netzwerk senden
- 9. JSON.parse: anderes Verhalten über das Netzwerk
- 10. UUIDs und Byte-Swapping über das Netzwerk
- 11. das Netzwerk C# senden Daten über
- 12. Zugriff auf die Datenbank über das Netzwerk
- 13. Falsches Ergebnis der Messung
- 14. Java unterscheidet zwischen Serialisierung auf der Festplatte über das Netzwerk
- 15. Messung der AJAX Ladezeit
- 16. Genaue Messung der Objektgrößen
- 17. Messung der Dokumentationsabdeckung mit Doxygen
- 18. Messung der Leistung des Klassifikationsalgorithmus
- 19. Messung der Körpertemperatur durch Touchscreen
- 20. Latenz von RTP-Stream über UDP
- 21. Messung der Bluetooth-Signalstärke über AppleScript auf Mac OS X
- 22. Messung der Leistung von Android-Browser
- 23. RabbitMQ Latenz Probleme über geographische Entfernung
- 24. Beobachter über ein Netzwerk
- 25. Optimierung SCP über Netzwerk
- 26. Messung der Qualität des Empfehlungssystems
- 27. Synchronisieren von Audio über ein Netzwerk
- 28. Zykluszählung Messung
- 29. Handoff Messung
- 30. Messung der Ausführungszeit und des verwendeten Arbeitsspeichers
'normalen Befehle der runtime' zu messen - was Sie sich beziehen? Was ist falsch mit normalem Ping? – Pavel
@Pavel ist meine Frage bearbeiten. Ich beziehe mich auf Befehle wie gettimeofday – PRVS
Möchten Sie die Ende-zu-Ende-Latenz (d. H. Einweg) oder die Round-Trip-Latenz (z. B. Ping) wissen? – Jonas