Performance-Scoring-Framework

Daniel Marty, Peter Camastral · HSR (HSR University of Applied Sciences Rapperswil) · 2013

Das Performance-Scoring-Framework bietet eine Möglichkeit, Java Programme oder Methoden in ihrer Ausführungsgeschwindigkeit zu bewerten. Mit Zeitmessungen ist das nicht möglich, da andere Programme und Threadwechsel das Resultat extrem verzerren und somit bei mehreren Durchläufen nie ein konstantes Resultat entstehen kann. Die Lösung wurde mit dem Zählen der von der Virtuellen Maschine ausgeführten Operationen erarbeitet. Dies wird mit einem JVMTI Agent erreicht, der beim Start eines Java Programmes an die Virtuelle Maschine angehängt wird und dann mittels Callbacks die verschiedenen Operationen zählt. Da diese jedoch unterschiedliche Ausführungszeiten haben, musste zusätzlich noch ein Kalibrierprogramm entwickelt werden. Dieses ermittelt die relativen Ausführungszeiten von einzelnen Operationen und generiert eine Datei aus dem das Framework dann Scores für die Operationen bezieht. Da die Operationen in wenigen Nanosekunden abgearbeitet werden, ist es nur in Linux möglich genaue Messungen zu erstellen, denn unter Windows sind die präzisesten Timer (QueryPerformanceCounter) lediglich auf 300 ns genau. Damit keine anderen Programme die Kalibration beeinflussen, wird mit Shell Skripten der Scheduler so eingerichtet, dass ein Core komplett frei ist und vom System nicht mehr gebraucht werden kann.

Read the paper · More papers on PaperTik