HighPerTimer – Zeitmessung und kontrolliertes Warten
Ein Netzexperiment braucht mehr als eine schnelle Verbindung. Es muss auch wissen, wann ein Paket gesendet wurde, wie lange ein Vorgang dauerte und wann die nächste Aktion beginnen soll. Verursacht das Messprogramm zu viel Aufwand oder wacht es zu spät auf, wird dieses Zeitverhalten Teil des Ergebnisses.
HighPerTimer ist eine Linux-Bibliothek für solche lokalen Zeitoperationen. Sie bietet eine gemeinsame Schnittstelle für Zeitstempel, Intervallberechnungen und kontrolliertes Warten. Anwendungen können damit geeignete Zeitquellen des Rechners auf einheitliche Weise nutzen.
© FILA
Zeitstempel verbinden Ereignisse mit ihrem Zeitpunkt. Damit lassen sich Abläufe und Zeitabstände in einem Experiment untersuchen.
Die Bibliothek verbindet die Wahl der Zeitquelle mit einer einheitlichen Darstellung der Zeitwerte. Die grundlegende Veröffentlichung beschreibt den Zugriff auf Hardware-Zähler und eine Zeitquelle des Betriebssystems als Alternative. Welche Quelle geeignet ist, hängt von der Plattform ab.
Die C++-Schnittstelle stellt Zeitwerte als Objekte bereit, auf denen Rechen- und Vergleichsoperationen ausgeführt werden können. Bei der Initialisierung wird eine geeignete Zeitquelle ausgewählt. Das verbindet hardwareabhängige Zähler mit einer gemeinsamen Anwendungsschnittstelle und erlaubt, Zeitpunkte und Intervalle im selben Programm konsistent zu behandeln.
Bei einem Wartevorgang ist entscheidend, wann das Programm tatsächlich weiterläuft. Deshalb werden die Abweichung vom gewünschten Zeitpunkt, der Aufwand des Aufrufs und die CPU-Auslastung gemeinsam betrachtet. Unter Last oder in einer virtuellen Maschine kann sich derselbe Vorgang anders verhalten.
Eine hohe Zeitauflösung ist hilfreich, unterscheidet sich aber von Genauigkeit und von der Synchronisation zwischen Rechnern. HighPerTimer behandelt lokale Zeitoperationen; LTest verbindet solche Vorgänge mit verteilter Netzmessung. Zusammen helfen sie, die zeitlichen Annahmen eines Transportexperiments nachvollziehbar zu machen.
Wenn Sie HighPerTimer für einen eigenen Versuch einsetzen möchten, besprechen Sie mit dem FILA-Team die passende Implementierung und Dokumentation. Nennen Sie die Zielplattform, den Mess- oder Übertragungsfall und die benötigten Vergleichsdaten.
Ausgewählte Publikationen
- Irina Fedotova, Eduard Siemens, Hao Hu (2013). A High-precision Time Handling Library. ICNS 2013: The Ninth International Conference on Networking and Services, 193–199 (IARIA).
- Veronika Kirova, Kirill Karpov, Eduard Siemens, Irina Zander, Oksana Vasylenko, Dmitry Kachan, Sergii Maksymov (2019). Impact of Modern Virtualization Methods on Timing Precision and Performance of High-Speed Applications. Future Internet, 11(8), article 179 (MDPI) DOI: 10.3390/fi11080179.