Benchmarking von Bilddatenstrukturen

Werbung
Benchmarking von Bilddatenstrukturen
Ralph Guderlei, Timo Tonn
Universität Ulm
Benchmarking von Bilddatenstrukturen – p. 1
Vorbetrachtungen
• Benchmark: ”Something which can be used as a
standard by which other things are judged or
measured”
Benchmarking von Bilddatenstrukturen – p. 2
Vorbetrachtungen
• Benchmark: ”Something which can be used as a
standard by which other things are judged or
measured”
• Objekte müssen vergleichbar sein
Benchmarking von Bilddatenstrukturen – p. 2
Vorbetrachtungen
• Benchmark: ”Something which can be used as a
standard by which other things are judged or
measured”
• Objekte müssen vergleichbar sein
• Objekte müssen auf die selbe Art und Weise
verglichen werden
Benchmarking von Bilddatenstrukturen – p. 2
Vorbetrachtungen
• Benchmark: ”Something which can be used as a
standard by which other things are judged or
measured”
• Objekte müssen vergleichbar sein
• Objekte müssen auf die selbe Art und Weise
verglichen werden
• Vergleichskriterium bzw.
Metrik:
Zeit
Operation
Benchmarking von Bilddatenstrukturen – p. 2
Aufbau
• Simuliert wird das Laufzeitverhalten bestimmter
Operationen in Abhängigkeit von Datenstruktur und
Größe.
Benchmarking von Bilddatenstrukturen – p. 3
Aufbau
• Simuliert wird das Laufzeitverhalten bestimmter
Operationen in Abhängigkeit von Datenstruktur und
Größe.
• Untersuchte Operationen:
Subrange, Slice (für jede Dimension), Transpose, Flip
(um jede Achse)
Benchmarking von Bilddatenstrukturen – p. 3
Aufbau
• Simuliert wird das Laufzeitverhalten bestimmter
Operationen in Abhängigkeit von Datenstruktur und
Größe.
• Untersuchte Operationen:
Subrange, Slice (für jede Dimension), Transpose, Flip
(um jede Achse)
• Wir haben uns auf maximal zweidimensionale
Datenstrukturen beschränkt
Benchmarking von Bilddatenstrukturen – p. 3
Vorgehensweise
• Festlegung eines Interface, welches die Funktionalität
vorgibt
Benchmarking von Bilddatenstrukturen – p. 4
Vorgehensweise
• Festlegung eines Interface, welches die Funktionalität
vorgibt
• Die Datentypen implementieren dieses Interface
Benchmarking von Bilddatenstrukturen – p. 4
Vorgehensweise
• Festlegung eines Interface, welches die Funktionalität
vorgibt
• Die Datentypen implementieren dieses Interface
• Der Benchmark basiert auf der Funktionalität des
Interface und ist für alle Datentypen gleich.
Benchmarking von Bilddatenstrukturen – p. 4
Vorgehensweise
• Festlegung eines Interface, welches die Funktionalität
vorgibt
• Die Datentypen implementieren dieses Interface
• Der Benchmark basiert auf der Funktionalität des
Interface und ist für alle Datentypen gleich.
• Der Benchmark durchläuft einen Zyklus von
Operationen
Benchmarking von Bilddatenstrukturen – p. 4
Vorgehensweise
• Festlegung eines Interface, welches die Funktionalität
vorgibt
• Die Datentypen implementieren dieses Interface
• Der Benchmark basiert auf der Funktionalität des
Interface und ist für alle Datentypen gleich.
• Der Benchmark durchläuft einen Zyklus von
Operationen
• Die Durchlaufzeit wird dann zu Vergleichszwecken
gemessen
Benchmarking von Bilddatenstrukturen – p. 4
Ergebnisse
Die Datenstrukturen unterscheiden sich sehr stark in ihrem
Laufzeitverhalten (150 mb Last, also etwa 4500x4500
Pixel):
Typ
Strides + Offset
Index Array
Multidim. Array
Typ
Strides + Offset
Index Array
Multidim. Array
Subrange Slice (1. Komp.) Slice(2.)
0
0.047
427
0
0.046
0
0
0.046
5
Transpose
Flip (1. Achse)
Flip (2.)
0
0
10602
0
0.044
472
0
0.044
1
Benchmarking von Bilddatenstrukturen – p. 5
Ergebnisse
• Das beste Laufzeitverhalten zeigt die ”Strides and
Offset”-Struktur
• Das schlechteste Laufzeitverhalten das
multidimensionale Array
• Insgesammt bestätigten die Versuche die
theoretischen Überlegungen.
◦ Die ”Strides and Offset”-Struktur verhält sich linear
in der Anzahl der Dimension
◦ Der Index Array linear in der Anzahl der Elemente
◦ Der multidimensionale Array schlechtestenfalls
quadratisch in der Anzahl der Elemente
Benchmarking von Bilddatenstrukturen – p. 6
Bemerkungen
• Die eingesetzten Betriebssysteme wirken sich nicht
auf das Laufzeitverhalten aus.
• Die getesteten Java-VMs zeigen ein sehr
unterschiedliches Laufzeitverhalten, und machen den
Hauptunterschied aus.
• Performanteste JVM war IBMs JDK 1.4
Benchmarking von Bilddatenstrukturen – p. 7
JVM Performance
140
JVM Performance
80
60
40
20
time (ms)
100
120
Win Sun 1.4.0
Linux Sun 1.4.0
Linux Bea JRockit
Linux Sun 1.4.2
Linux IBM 1.4
0
50
100
size (mb)
150
200
Benchmarking von Bilddatenstrukturen – p. 8
verwendete Tools
• Eclipse als Entwicklungsumgebung
http://www.eclipse.org
• JUnit als Unit Test-Framework
http://junit.org
• Ant als Build-Tool
http://ant.apache.org
Benchmarking von Bilddatenstrukturen – p. 9
Literatur
• R. Binder: Testing Object-Oriented Systems
• M. Fowler: Refactoring
• E. Gamma, R. Helms, R. Johnson, J. Vlissides:
Design Patterns
Addison-Wesley
Benchmarking von Bilddatenstrukturen – p. 10
Herunterladen