Optimierung dynamischer Methodenbindung zum Entfernen ungenutzter Programmelemente durch Kombination statischer Analyseverfahren

von Hermann Wessels, 2004

JScatter ist ein System, das mehrsträngige Java-Anwendungen automatisch auf verschiedene Rechnerknoten verteilt. Das Anwendungsprogramm mit den darin benutzten Bibliotheken wird zunächst auf Bytecode-Ebene analysiert und in eine verteilte Form so transformiert, dass es später auf einer dafür vorgesehenen verteilten Laufzeitumgebung ausgeführt werden kann. Der Zeit- und Platzaufwand des Transformationsprozesses erhöht sich dabei proportional mit steigender Größe der Eingabe. Durch das Entfernen ungenutzter Programmelemente aus der Anwendung und aus den verwendeten Bibliotheken kann dieser Aufwand für die Transformationsphase deutlich gesenkt werden. Dazu bildet man eine transitive Hülle der Programmkonstrukte bezüglich der Benutzungsrelation. Die Hüllebildung kann mit Hilfe statischer Programmanalyse auf Bytecode-Ebene durchgeführt werden. Sie erfolgt auf der Grundlage eines Aufrufgraphen und der darauf definierten Erreichbarkeitseigenschaft. Es ist unabhängig davon, welche Analyseverfahren zum Einsatz zur Bestimmung des Aufrufgraphen kommen. Die Güte der Hülle sowie der Optimierungsgrad dynamischer Methodenbindung ist aber abhängig von der Genauigkeit des Aufrufgraphen. Zur Bestimmung eines Aufrufgraphen können ganz einfache Verfahren wie das "Name Based Resolution" bis zu komplexeren Verfahren wie Referenziel-Analyse eingesetzt werden. Diese Verfahren setzen unterschiedlich hohen Aufwand ein, um dynamisch gebundene Aufrufe im Aufrufgraphen unterschiedlich genau zur repräsentieren.

In dieser Diplomarbeit wurde ein neuer Ansatz zur Berechnung des Aufrufgraphen untersucht und umgesetzt, der mehrere Analyseverfahren miteinander kombiniert. Dazu wird mit dem schnelleren, aber auch ungenaueren Verfahren eine Initiallösung bestimmt, die dann durch ein weiteres Verfahren verfeinert wird. Bei der Verfeinerung werden gezielt Aufrufbeziehungen zur erneuten Betrachtung ausgewählt bzw. davon ausgeschlossen werden. Bei der Arbeit wurden einige Analyseverfahren aus der Literatur auf ihre Eignung zur Kombination zwecks Hüllebildung und Optimierung dynamischer Methodenbindung untersucht und realisiert. Eine umfassende Evaluation der Güte der Hülle und des Wirkungsgrades der Optimierungen wurde ebenfalls durchgeführt.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013