Messung von Transfer- und Ausführungszeiten von Methodenaufrufen in verteilten Systemen
« Client-seitige Zeitmessung | Einleitung | Verteilte Zeitmessung (Variante 1: synchrone Systemuhren) »
Server-seitige Zeitmessung
Problem
Wie hoch ist die reine Ausführungsdauer einer Methode (ohne den Zeiten für das Packen und Verpacken von Informationen und dem Transfer der Daten über das Netzwerk) in einem Server-Objekt? Wie kann ermittelt werden, wie lange eine entfernt ausgeführte Methode an Zeit für die Ausführung benötigt, ohne dass der Client direkten Zugriff auf die Methode hat?
Ziel
Bei der server-seitigen Zeitmessung ist das Ziel die Messung der Zeitspanne, die für die Ausführung einer Methode in einem Server-Objekt benötigt wird. In dieser Zeitspanne sind nicht enthalten: die Zeiten für das Packen und Verpacken des Methodenaufrufs und ggf. vorhandener Daten und des Transfers der Informationen über das Netzwerk.
Vorgehen
Wie wird die Messung vorgenommen? In der gerufenen Methode wird - vor der Ausführung der eigentlichen Anweisungen - die Systemzeit genommen. Diese wird als Startzeit interpretiert. Vor dem Verlassen der Methode, wird erneut die Systemzeit abgefragt. Diese zweite genommene Zeit wird als Stoppzeit markiert. Die Differenz der beiden vom Server-Objekt genommenen Zeiten ist die Zeitspanne der reinen Ausführungszeit der Methode.
Code-Beispiel
<Code-Fragement folgt…>
« Client-seitige Zeitmessung | Einleitung | Verteilte Zeitmessung (Variante 1: synchrone Systemuhren) »