BenchmarkTimer - Gruppierungen

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Gesperrt
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

BenchmarkTimer - Gruppierungen

Beitrag von Screeze » 19.03.2012, 19:41:24

Ich benutze den Benchmarktimer des APF auch in einem Projekt, welches nicht auf dem APF aufbaut. Dort habe ich gerade einen Anwendungsfall, bei dem dem Benchmarktimer ein Feature fehlt, welches ich auch für sinnvoll für das APF halte:

Und zwar werden an einer bestimmten Stelle eine Menge Daten zusammengezogen, und für jeden Datensatz zusätzliche Aufgaben erledigt. Nun würde ich gerne wissen, welche der Aufgaben wie lange benötigt, um die Zeit intensivsten Aufgaben herauszufinden, und diese will ich mit der Gesamtzeit in Relation stellen.

Das Problem in der aktuellen Implementierung:
Das sieht dann so aus:

Code: Alles auswählen

Prozess A           0.341234
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess B     0.0000123214
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
-----Prozess B     0.0000123214
-----Prozess C     0.0000123233
-----Prozess D     0.0000023123
Und das ganze etliche hunderte male.
Was ich nun gerne hätte, wäre die SUMME aller Zahlen zu Prozessen die den selben Name tragen.
Zusätzlich wäre auch ein Durchschnittswert, sowie Höchst- und Tiefstwerte interessant.

Das ganze sollte dann in etwa so aussehen:

Code: Alles auswählen

Prozess A           0.341234
-----Prozess B (SUMME)    0.0045223
--------------- Durchschnitt    0.000043233
--------------- Höchstwert      0.000098332
--------------- Tiefstwert       0.000013323
-----Prozess C (SUMME)    0.008929
--------------- Durchschnitt    0.000043233
--------------- Höchstwert      0.000098332
--------------- Tiefstwert       0.000013323
-----Prozess D (SUMME)    0.15785
--------------- Durchschnitt    0.000053233
--------------- Höchstwert      0.000078332
--------------- Tiefstwert       0.000033323
Wie könnten wir das denn am sinnvollsten umsetzen?

Meine Idee wäre, dass wir der start() Funktion noch ein optionales Flag mitgeben, welches bestimmt ob es sich um eine Gruppierung handeln soll oder nicht. Das ganze wird dann im Prozess gespeichert, und bei der Auswertung am Ende wird das dann berücksichtigt.
Einzige Frage die noch bliebe: sollen dann nur Prozesse im selben Elternprozess zusammengefasst werden, oder alle im aktuellen Seitenaufruf, die dann am Ende noch angegeben werden vom Benchmark.
Ich finde beiden Lösungen wären sinnvoll, nur wie könnte man das unterscheiden?

Was meint ihr?

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: BenchmarkTimer - Gruppierungen

Beitrag von TipTop » 22.03.2012, 14:39:21

Find ich gut! :)
Einzige Frage die noch bliebe: sollen dann nur Prozesse im selben Elternprozess zusammengefasst werden, oder alle im aktuellen Seitenaufruf, die dann am Ende noch angegeben werden vom Benchmark.
Vielleicht sollte man dies beim erstellen des Report entscheiden können - sprich, dass man der createReport()-Methode noch einen zusätzlichen Parameter übergibt.

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: BenchmarkTimer - Gruppierungen

Beitrag von Megger » 22.03.2012, 15:58:35

Finde die Idee auch sehr gut!

Beide Möglichkeiten sind sehr interessant, auch zeitgleich! Deshalb sollte man vielleicht über eine Möglichkeit nachdenken, wie man das ganze anbieten kann!

Vielleicht bei createReport so etwas wie :
GROUP_PARENT
GROUP_ALL
GROUP_BOTH
sodass man sich entscheiden kann, welche Version man haben will
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: BenchmarkTimer - Gruppierungen

Beitrag von dr.e. » 09.04.2012, 18:16:52

ACK! Diese Art der Auswertung fände ich ebenfalls gut. Wer hat Zeit/Lust?
Viele Grüße,
Christian

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast