Untersuchung der Performanzentwicklung von Tomcat
Software-Entwicklungsprojekte sind regelmäßigen Refactorings und Funktionserweiterungen unterworfen. Eine Untersuchung, welche Auswirkungen Änderungen auf die Softwareperformanz hat, ist bislang nicht erfolgt. Derzeitig wird ein Werkzeug zur Performanzanalyse von Softwaresystemversionen durchgeführt, dessen Ziel es ist, Performanzveränderungen in verschiedenen Revisionen festzustellen. Dies geschieht durch die Transformation der Unit-Tests zu Performanz-Unit-Tests, mittels denen festgestellt wird, welche Performanz bestimmte Testfälle haben und ob sich diese verändert.
Mit einem bestehenden Werkzeug soll der Applikationsserver Tomcat untersucht werden. Das bestehende Werkzeug zur Performanzanalyse von Softwaresystemversionen soll so erweitert werden, dass es Tomcat-Ant-Buildskripte um Performanzmessungen und Performanztestinstrumentierung erweitern kann. Hiermit sollen Performanzveränderungen gefunden werden. Abschließend sollen die gefundenen Performanzveränderungen klassifiziert und mit Performanz-Antipatterns aus der Literatur verglichen werden.
Die Arbeit kann als Bachelor-/Master- bzw. Diplomarbeit belegt werden. Wenn Sie Interesse an diesem Thema haben, wenden sie sich bitte an David Georg Reichelt.
Beschleunigung der Ursachenanalyse von Performanzänderungen
Um Ursachen von Performanzänderungen zu finden, ist ein Ansatz die Ursachanalyse (Root-Cause Analysis). Dabei wird der Aufrufbaum ermittelt und anschließend werden für jede Ebene die Knoten des Aufrufbaums instrumentiert und gemessen. Um zuverlässige Messwerte zu erhalten, müssen hierfür die Messungen wiederholt und in verschiedenen, nacheinander gestarteten Java-VMs durchgeführt werden.
Aktuelle Implementierungen dieses Verfahrens, bspw. in Pe ASS nutzen hierfür neue VMs für jede einzelne Methodenmessung. Durch adaptive Instrumentierung wäre es möglich, VMs nur zu pausieren und die Instrumentierung anschließend für die Messung der nächsten Baumebene anzupassen. So könnte der Warmup entfallen und die Messung maßgeblich beschleunigt werden.
Im Rahmen der Abschlussarbeit soll erprobt werden, wie es möglich ist, die VM mit Performanzmessungen zu pausieren und durch adaptives Monitoring effizienter Messwerte zu generieren. Die Arbeit kann als Bachelor- oder Masterarbeit durchgeführt werden. Im Fall einer Masterarbeit ist empirisch an verschiedenen Beispielprojekten zu untersuchen, welche Beschleunigung das Verfahren gegenüber der herkömmlichen Messung bietet.
Die Arbeit kann als Bachelor-/Master- bzw. Diplomarbeit belegt werden. Wenn Sie Interesse an diesem Thema haben, wenden sie sich bitte an David Georg Reichelt.
Feststellung des stationären Zustands bei Performanzmessungen
Performanz von Software verändert sich während der Ausführung innerhalb einer VM: Durch Just-in-Time-Compilation, Optimierung und Garbage Collection ändert sich die Ausführungsdauer einzelner Methoden. Um zuverlässige Messwerte zu erhalten, werden Messungen deshalb innerhalb einer VM wiederholt. Dabei werden Messungen oft so lange wiederholt, bis der stationäre Zustand erreicht ist.
Problematisch ist, dass verschiedene Anwendungsfälle unterschiedliche Anzahl von Wiederholungen benötigen. Deshalb soll das Performanztestframework Ko Pe Me so erweitert werden, dass Messungen ausgeführt werden, bis der stationäre Zustand einer Ausführung erreicht ist.
Die Arbeit kann als Bachelor- oder Masterarbeit durchgeführt werden. Im Fall einer Masterarbeit soll die entwickelte Ko Pe Me- Erweiterung an Beispielprojekten evaluiert werden.
Die Arbeit kann als Bachelor-/Master- bzw. Diplomarbeit belegt werden. Wenn Sie Interesse an diesem Thema haben, wenden sie sich bitte an David Georg Reichelt.