Java Benchmark |
Das JDK ab Version 1.2 enthält einige Schnittstellen für abstrakte
Datentypen, zum Beispiel Map für Verzeichnisse, Set für Mengen und List für Listen.
Außerdem sind im JDK einige konkrete Implementierungen vorhanden.
Über die Effizienz dieser Implementierungen wird aber relativ wenig in der Dokumentation ausgesagt.
Ziel dieser Aufgabe ist die Entwicklung einer Umgebung zum Messen des Zeit- und des Platzbedarfs für
die unterschiedlichen Implementierungen aus dem JDK und anderen selbst entwickelten oder aus Fremdsoftware übernommenen
Klassen. Es sollen für ATDs unterschiedliche Test gemacht werden, über die man einen Eindrück gewinnen kann, mit welcher
Komplexität die einzelen Operationen wie einfügen, suchen, löschen, ... arbeiten.
Die Benchmark-Umgebung soll dabei mit der jeweiligen ADT-Implementierung auf einfache Weise parametrisiert werden können,
so dass neue Implementierungen auch dynamisch dazugenommen werden können, ohne die Benchmark-Quellen neu zu kompilieren.
Die Benchmarks sollen so ausgelegt werden, dass die Anwendung selbständig die Länge der Testläufe und die Größe der Testfälle
berechnet, und zwar unabhängig von der Hardware des Testrechners.
Die Resultate der Testfälle sollen grafisch aufbereitet werden. Die Grafiken sollen mit Hilfe von SVG
erzeugt werden.
|
Varianten |
Die drei wichtigsten ADTs sind Listen, Mengen und Tabellen (maps).
Für diese drei ADTs sollen in unterschiedlichen Aufgaben Benchmark-Umgebungen
realisiert werden.
Neben den im JDK vorhandenen Implementierungen sollen mindestens eine einfach verkettete Liste und binäre Bäume verwendet werden,
und zwar so, wie sie in der OOP-Vorlesung entwickelt wurden.
|