Ich habe ein kleines Programm geschrieben zur Latenzzeitmessung der Datenübertragung an der seriellen Schnittstelle. Getestet unter Windows 32-Bit, FreeBSD und diversen Linux-Distributionen. Über Feedback würde ich mich freuen.
:
Bearbeitet durch User
Jakob F. schrieb: > Über Feedback würde ich mich freuen. Hallo! Ich grüble noch darüber, für welches Problem Du hier die Lösung anbietest? Nur wenn ich dieses Problem mal haben sollte, würde ich eine EXE von einem Unbekannten runterladen. Erst nach dem Test auf meinem Quarantänecomputer könnte ich ein Feedback geben. Noch suche ich das Problem...
Route_66 schrieb: > Nur wenn ich dieses Problem mal haben sollte, würde ich eine EXE von > einem Unbekannten runterladen. Erst nach dem Test auf meinem > Quarantänecomputer könnte ich ein Feedback geben. Im Link ist der Source-Code. Ich glaube die .exe ist was für Leute die sich das Programm nicht selbst bauen wollen. Und Latenz messen kann für kritische Anwendung sicherlich interessant sein um zu wissen, wie lange es dauert bis der Befehl im PC auch die Außenwelt erreicht, aber konkrete Anwendung hätte ich jetzt auch nicht. Eventuell kann der Threadstarter ja mal erklären warum er das gebraucht hat ;)
Konkret habe ich Latenzzeit-Unterschiede eines USB-Seriell-Adapters (USB-2 Device) an USB-2- vs. USB-3-Hosts gemessen. Der USB-Seriell-Adapter ist an einem USB-3-Host unter Linux flotter: im Schnitt messe ich für das Senden + Empfangen eines Bytes 0.96ms (USB-2) vs. 0.3ms (USB-3) bei 10000 Samples.
Julian W. schrieb: > Und Latenz messen kann für kritische Anwendung sicherlich interessant > sein um zu wissen, wie lange es dauert bis der Befehl im PC auch die > Außenwelt erreicht, ich halte sowas für völlig irrelevant, denn man sollte sich immer vor Augen halten, daß einem Programm/Thread die Rechenzeit vom BS nach dessen Gutdünken zugeteilt wird. Deswegen sind etwaige Latenzen im unteren Millisekundenbereich herzlich unerheblich. Es ist vielmehr zu erwarten, daß in besagtem "kritischen" Fall das Programm erst 50 ms später ein Stück Rechenzeit bekommt und deshalb auch erst 50 ms später seine Bytes zur Ausgabe bereitstellen kann. Ob dann da noch 0.96 ms dazukommen, ist egal. W.S.
W.S. schrieb: > ich halte sowas für völlig irrelevant, denn man sollte sich immer vor > Augen halten, daß einem Programm/Thread die Rechenzeit vom BS nach > dessen Gutdünken zugeteilt wird. Hallo! Genau das war mein Problem. Ich kann mir deshalb ja den Sinn und Nutzen dieses Programmes nicht erklären.
W.S. schrieb: > Deswegen sind etwaige Latenzen im unteren Millisekundenbereich herzlich > unerheblich. Es ist vielmehr zu erwarten, daß in besagtem "kritischen" > Fall das Programm erst 50 ms später ein Stück Rechenzeit bekommt und > deshalb auch erst 50 ms später seine Bytes zur Ausgabe bereitstellen > kann. Ob dann da noch 0.96 ms dazukommen, ist egal. Das Programm kann unter Linux mit der Option -R gestartet werden, dann läuft der Messprozess in der SCHED_FIFO-Klasse. Wenn die Treiber als Tasklet laufen und deren Prioritäten entsprechend optimiert sind (vgl. etwa http://subversion.ffado.org/wiki/IrqPriorities ), können Ausreißer in der Latenzzeit noch weiter minimiert werden.
Das Programm ist völlig nutzlos. Es wird nur die Latenzzeit Deines Programms und Deiner Konfiguration ermittelt. Die reale Latenz muss die Verarbeitung im MC, die des Übertragungsweges, sowie die Erkennung im Anwenderprogramm berücksichtigen. Die Latenz ist also naturgemäß je nach MC und PC-Anwenderprogramm unterschiedlich. Was soll also Dein Programm zur Erkenntnisfindung beitragen? Da braucht es keine zusätzliche Latenzmess-Software, es reicht ein 10 Euro Logic-Analyzer um alles herauszufinden was man wissen möchte. Bei meinen Messungen und meinen Programmen liegt die Latenzzeit zwischen 2 und 4 ms. Wenn der PC allerdings meint was anderes hätte Vorrang kann das bis zu 500 ms sein.
Ich habe keinen Logic-Analyter, deswegen ist das Programm für mich von Nutzen.
Anscheinend hast Du nicht verstanden was ich oben geschrieben habe. Dein Programm misst die Latenzzeit an eben diesem. Die Aussagekraft für beliebige andere Anwender-Programme ist daher gleich Null. Daher ist es nutzlos für andere und eher auch für Dich, denn wie gesagt, es macht nur eine Aussage für/über Dein Testprogramm.
Für andere Programme eine Aussagekraft zu finden, ist nicht der Anspruch des Programms. Ich nutze das Programm vor allem, um auf unterschiedlichen Betriebssystemen (Linux, BSD, Windows, OS X) oder unterschiedlicher Hardware (Seriell-Adapter an USB 2 vs. USB 3) zu testen, so kann ich die Messergebnisse vergleichen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.