Benchmark-Vergleich Programm - Earthproject Forum

Du bist nicht angemeldet.

Benchmark-Vergleich Programm

Tirus

Entwickler

Beiträge: 31

1

17 May 2014, 14:19

Benchmark-Vergleich Programm

Hallo zusammen,

es wäre ganz nützlich wenn jemand ein kleines Tool oder PHP Script (o.ä.) basteln könnte,
um Benchmarkergebnisse von unserem Projekt untereinander vergleichen zu können.

Dies könnte zum einen helfen herrauszufinden, wo der Flaschenhals bei diversen Algorithmen liegt,
(CPU, RAM ect. zwischen Rechnern) als auch bei der Optimierung, um eben Testen zu können,
ob und wie viel nach einer verbesserung das den nun schneller läuft.

Als erstes Beispiel habe ich hier ein Benchmark unserer Wegsuche gepostet:
[url]http://earthproject.sixty-four.de/forum/index.php?page=Thread&threadID=64[/url]

Was das Programm können sollte ist zwei solcher Dateien (im Text Format) einlesen,
und gegeneinander die Ergebnisse vergleichen, evtl. als Tabelle ausgeben und die Differenz anzeigen.

Falls es einfacher wird können wir die Ausgabe des Benchmarks auch auf einzelne Werte (als ohje jedlichen Text dazu)
beschränken, dann müssten nur die Zahlenwerte aus beiden Dateien eingelesen und deren Zeilen verglichen und
ausgewertet werden.

Findet sich dafür jemand, der da etwas basteln könnte?

MSC

Teh Atmin!

Beiträge: 97

2

17 May 2014, 21:10

Sollte am einfachsten in PHP realisierbar sein, allerdings verstehe ich noch nicht ganz die Aufgabe...

Tirus

Entwickler

Beiträge: 31

3

17 May 2014, 21:26

Also was ich meine ist ein Programm, das zwei (oder mehr?) solcher kompletter Benchmarkergebnisse nimmt, und diese vergleicht.

Angenommen jetzt sind da 2 Ergebnisse (von unterschiedlichen Benchmarks, nicht aus dem selben) mit folgendem:

Quellcode


Test: Kurze Suche ohne Hindernis (10, 10) -> (20, 10)
min max avg fields found
783 1406 1106 10 1 (AStar)
75 546 125 10 1 (Breitensuche)
9 14 10 10 1 (Jump Point Search)


Quellcode


Test: Kurze Suche ohne Hindernis (10, 10) -> (20, 10)
min max avg fields found
771 2086 1129 10 1 (AStar)
76 545 127 10 1 (Breitensuche)
10 14 10 10 1 (Jump Point Search)


Dann wäre ein Ergebnis dafür wünschenswert das nun die Werte vergleicht und die differenz ausgibt.
Je nachdem auch eine % Angabe, wobei der erste Test dann 100% sind.

Quellcode


Beispielausgabe:
-12 (-1,5%) +680 (+48,4%) +23 (+2,1%) (AStar)
...


So in etwa stelle ich mir das vor.
Diese Ausgabe dann entsprechend für alle Algorithmen und alle Tests.
Darf natürlich auch anders Formatiert sein, je nachdem was eben sinn ergibt und gut passt.

MSC

Teh Atmin!

Beiträge: 97

4

17 May 2014, 22:03

Sind AStar, Breitensuche und Jump Point Search die verschiedenen Wegfindungsalgorithmen oder was ist das?

Tirus

Entwickler

Beiträge: 31

5

17 May 2014, 22:28

ja genau.
Dabei wurden alle jeweils 10x getestet, und von diesen 10 Tests die minimale dauer (min), die maximale (max) und der durchschnitt (avg) aus allen 10 Messungen bestimmt.
Zudem steht noch die gefundene Wegstrecke (fields), und die Angabe ob überhaupt ein Weg gefunden wurde (found) in den Spalten.

Dachte das wäre offensichtlich, sorry.

MSC

Teh Atmin!

Beiträge: 97

6

19 May 2014, 14:52

Sollen diese Ergebnisse auch gespeichert werden, zum späteren abgleichen?

Bei der Darstellung könnte ich auch vom größten oder kleinsten ausgehen und entsprechend Balkendiagramme mit einer % Anzeige wie viel schneller oder Langsamer die anderen sind.

Versuchst du so herauszufinden, welcher Algorithmus die Besten durchschnittsergebnisse liefert?
Denkbar wäre ja auch ein stetiger wechsel der Algorithmen um so verschiedene Wege zu finden.

Was allerdings alle gemeinsam haben: sie brauchen sehr lange, wenn es keinen Weg gibt, evtl. sollte man sich einen Timeout überlegen, die Einheiten dürfen desswegen aber auch nichts machen, sie müssten wenigstens in die Nähe fahren.
Wie schaut es aus, wenn die Einheiten im Bewegunsprozess sind und sich neue Wege auftuen oder der eingeschlagene Weg versperrt wird?

Tirus

Entwickler

Beiträge: 31

7

19 May 2014, 19:52

Das erste was wir versuchen ist erstmal unsere Implememtierung selbst ein wenig zu optimieren,
in dem z.B. weniger Speicher während der Suche vom System anfordern.

Dafür sind erstmal nur direkte Zahlenvergleiche erforderlich.

Mehr features wie Speicherung und Balkenvergleiche wären auch schön, haben aber erstmal nicht so die Priorität.

Mit den zu langen Zeiten hast du natürlich Recht, aber da sind wir ja auch noch lange nicht fertig.
U.a. haben wir vor die Karte zu Segmentieren, und damit immer nur den nötigsten Bereich abzusuchen, sowie
teilw. Wege vorzuberechnen.

Geeignete Abbruchkriterien, falls es keinen weg gibt werden auch noch folgen.

MSC

Teh Atmin!

Beiträge: 97

8

26 May 2014, 11:43

Passt so? [url]http://earthproject.sixty-four.de/benchmark_compare.php[/url]

Ich habe mich genau an deine Struktur gehalten, wenn du etwas änderst, läuft es nicht mehr.