einfacher AutoIt/GDI+ Leistungstest

  • Hi Leute,

    hier ist ein kleines Programm, mit dem ihr die Leistung von AutoIt und GDI+ auf verschiedenen PCs testen und anschließend vergleichen könnt.
    eventuell kann es ja jemand von euch gebrauchen :)


    Update 09.06.2013:

    alle Programme mit Quellcode im Anhang


    noch ein Leistungstest (mit PureBasic und C)

    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/68438584/Arduino-Control/Performance-Test/Performance-Test%20-%20PureBasic%20x64%20-%201.jpg]

    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/68438584/Arduino-Control/Performance-Test/Performance-Test%20-%20PureBasic%20x64%20-%203.jpg]


    lg
    SBond

  • :thumbup:, DAS nenne ich mal einen schönen Einstand ins Forum!

    Spoiler anzeigen

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    2 Mal editiert, zuletzt von Andy (3. Februar 2013 um 17:02)

  • oh nein 8|


    dadurch das mein Code zu lang war ist wohl die ganze Nachricht gelöscht wurden :(
    Ich bin ja so ein Amateur :D

    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond

  • Ich würde ja gerne am Ende das Ergebnis erfahren ^^ Ansonsten ist es mal eine nette Idee, schön umgesetzt.
    Schön zu sehen wie viel Unterschied Triple-Buffering in der Geschindigkeit machen kann ^^

    Als Tipp für die weitere Programmierung:
    Schau dir doch mal dringend Arrays an, ich glaube die hätten hier sehr geholfen

  • haha

    mit arrays arbeite ich eigentlich öffters, aber der Code wurde einfach nur schnell und faul geschrieben :D
    ...ich wollte damit nur in der Fachhochschule die Rechner fix testen.

    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond

  • Hier mein Resultat, gemessen auf meinem Schleppi:

    Spoiler anzeigen


    SBond: Physik Student?

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • UEZ: nicht ganz :D
    Ich studiere Elektrotechnik (ende des 5 Semesters von 7 / Bachelor of Engineering). Momentan sind wieder viele Prüfungen, aber das wird schon.

    Es ist immer wieder interessant, wie unterschiedlich Ergebnisse ausfallen.

    Ich habe mal ein Test mit unterschiedlichen Sprachen auf meinem Laptop gemacht.
    Einfache Aufgabe: eine Zahl von 1 bis 1 Mrd hochzählen.

    Die benötigte Zeit:

    Autoit: 2 Minuten und 27 Sekunden
    C: 8,2 Sekunden
    PureBasic: 0,3 Sekunden

    ..ein enormer Zeitunterschied. Aber das AutoIt als Interpreter langsam ist, sollte ja bei den meisten bekannt sein. Für die allgemeinen Zwecke reicht es aber in der Regel aus.

    Hier ist auch mal ein Test-Resultat:


    Computer-Informationen
    ------------------------------------------------------------------------------------------------------------------------
    CPU-Architektur: X64
    CPU-Clock: 3399 MHz
    CPU-Name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz

    Betriebssystem: WIN_7
    Build: 7601
    Service-Pack: Service Pack 1
    Betriebssystem-Architektur: X64


    Test 01/16: von 1 bis 100.000.000 zählen... (dies kann einige Sekunden dauern)
    ------------------------------------------------------------------------------------------------------------------------
    gemessene Zeit: 6.8017 s


    Test 08/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0
    ------------------------------------------------------------------------------------------------------------------------
    Plottfrequenz: 34811.954 Hz
    Bildfrequenz (FPS): 52.745 Hz
    Plottzeit für einen Wert: 0.029 ms
    Plottzeit für ein Bild (660 Werte): 19.14 ms


    Spoiler anzeigen


    ########################################################################################################################
    ##################################################### Dateibeginn ####################################################
    ########################################################################################################################


    Software-Informationen
    ------------------------------------------------------------------------------------------------------------------------
    Programmtitel: AutoIt/GDI+ Benchmark
    Programmversion: 1.0.0.2
    Autor: SBond
    Erstellungsdatum: 15.01.2013
    letztes Update: 17.01.2013
    Lizenz: Freeware

    Informationen: Mit diesem kleinen Programm ist es möglich, eine Leistungsanalyse von AutoIt und GDI+ durchzuführen,
    um diese anschließend vergleichen zu können.


    ########################################################################################################################


    allgemeine Benchmark-Informationen
    ------------------------------------------------------------------------------------------------------------------------
    Datum: 19.01.2013
    Zeit: 20:07:15

    Benchmark-Dauer: 125.77 s
    Grafik-breite 660
    Grafik-höhe: 300
    Grafik-Pixel: 198000


    ########################################################################################################################


    Computer-Informationen
    ------------------------------------------------------------------------------------------------------------------------
    CPU-Architektur: X64
    CPU-Clock: 3399 MHz
    CPU-Identifier: Intel64 Family 6 Model 42 Stepping 7
    CPU-Name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz

    Betriebssystem: WIN_7
    Build: 7601
    Service-Pack: Service Pack 1
    Betriebssystem-Architektur: X64


    ########################################################################################################################


    Test 01/16: von 1 bis 100.000.000 zählen... (dies kann einige Sekunden dauern)
    ------------------------------------------------------------------------------------------------------------------------
    gemessene Zeit: 6.8017 s


    ########################################################################################################################


    Test 02/16: immer eine Linie in den Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0027 s
    Plottfrequenz: 325.64 Hz
    Bildfrequenz (FPS): 0.493 Hz
    Plottzeit für einen Wert: 3.071 ms
    Plottzeit für ein Bild (660 Werte): 2026.86 ms


    Test 03/16: immer eine Linie in den Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 1
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0007 s
    Plottfrequenz: 320.722 Hz
    Bildfrequenz (FPS): 0.486 Hz
    Plottzeit für einen Wert: 3.118 ms
    Plottzeit für ein Bild (660 Werte): 2057.88 ms


    Test 04/16: immer eine Linie in den Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 2
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0026 s
    Plottfrequenz: 352.011 Hz
    Bildfrequenz (FPS): 0.533 Hz
    Plottzeit für einen Wert: 2.841 ms
    Plottzeit für ein Bild (660 Werte): 1875.06 ms


    ########################################################################################################################


    Test 05/16: immer eine Linie in den Frontbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0009 s
    Plottfrequenz: 9568.923 Hz
    Bildfrequenz (FPS): 14.498 Hz
    Plottzeit für einen Wert: 0.105 ms
    Plottzeit für ein Bild (660 Werte): 69.3 ms


    Test 06/16: immer eine Linie in den Frontbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 1
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 9656.5 Hz
    Bildfrequenz (FPS): 14.631 Hz
    Plottzeit für einen Wert: 0.104 ms
    Plottzeit für ein Bild (660 Werte): 68.64 ms


    Test 07/16: immer eine Linie in den Frontbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 2
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0001 s
    Plottfrequenz: 9254.634 Hz
    Bildfrequenz (FPS): 14.022 Hz
    Plottzeit für einen Wert: 0.108 ms
    Plottzeit für ein Bild (660 Werte): 71.28 ms


    ########################################################################################################################


    Test 08/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0007 s
    Plottfrequenz: 34811.954 Hz
    Bildfrequenz (FPS): 52.745 Hz
    Plottzeit für einen Wert: 0.029 ms
    Plottzeit für ein Bild (660 Werte): 19.14 ms


    Test 09/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 1
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 34989.125 Hz
    Bildfrequenz (FPS): 53.014 Hz
    Plottzeit für einen Wert: 0.029 ms
    Plottzeit für ein Bild (660 Werte): 19.14 ms


    Test 10/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 2
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 33889.125 Hz
    Bildfrequenz (FPS): 51.347 Hz
    Plottzeit für einen Wert: 0.03 ms
    Plottzeit für ein Bild (660 Werte): 19.8 ms


    ########################################################################################################################


    Test 11/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0, Rauschsignal 1
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0002 s
    Plottfrequenz: 33246.669 Hz
    Bildfrequenz (FPS): 50.374 Hz
    Plottzeit für einen Wert: 0.03 ms
    Plottzeit für ein Bild (660 Werte): 19.8 ms


    Test 12/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0, Rauschsignal 2
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8.0001 s
    Plottfrequenz: 32422.095 Hz
    Bildfrequenz (FPS): 49.124 Hz
    Plottzeit für einen Wert: 0.031 ms
    Plottzeit für ein Bild (660 Werte): 20.46 ms


    Test 13/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0, Rauschsignal 3
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 33691.75 Hz
    Bildfrequenz (FPS): 51.048 Hz
    Plottzeit für einen Wert: 0.03 ms
    Plottzeit für ein Bild (660 Werte): 19.8 ms


    Test 14/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0, Rauschsignal 4
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 31979.625 Hz
    Bildfrequenz (FPS): 48.454 Hz
    Plottzeit für einen Wert: 0.031 ms
    Plottzeit für ein Bild (660 Werte): 20.46 ms


    Test 15/16: nur den fertigen Backbuffer zeichnen... Messdauer: 8 sek, Rendermodus: 0, Rauschsignal 5
    ------------------------------------------------------------------------------------------------------------------------
    eingestellte Messdauer: 8 s
    gemessene Zeit: 8 s
    Plottfrequenz: 21701 Hz
    Bildfrequenz (FPS): 32.88 Hz
    Plottzeit für einen Wert: 0.046 ms
    Plottzeit für ein Bild (660 Werte): 30.36 ms


    ########################################################################################################################


    Test 16/16: nur den fertigen Backbuffer zeichnen... , Rendermodus: 0, Einzelpixel (dies kann einige Sekunden dauern)
    ------------------------------------------------------------------------------------------------------------------------
    gemessene Zeit: 6.9475 s


    ########################################################################################################################
    ###################################################### Dateiende #####################################################
    ########################################################################################################################


    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond

  • Eigentlich hatte ich an E-Technik gedacht, aber Physik geschrieben. Wie kamst du zu AutoIt?

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (3. Februar 2013 um 18:09)

  • Hier auch mal, was mein PC so fabriziert (Laptop):

    Spoiler anzeigen

    Schönes Skript. :thumbup:

    chess

  • schöne Ergebnisse. Es wäre echt schön gewesen, wenn man die Grafikkarte für GDI verwenden könnte :D So muss nunmal ein CPU-Kern alles machen.


    UEZ:

    zu AutoIt kam ich durch einen Internetkontakt, mit dem ich jetzt schon lange befreundet bin. "Kare", der hier auch mal ein paar Beiträge geschrieben hat, programierte einige Software um Treiber automatisiert zu installieren. Er schlug mir mehrmals vor, AutoIt auszuprobieren. ...es sei wohl sehr einfach. Die ersten Scripts, die ich dann so im Internet sah, schreckten mich total ab. Ich konnte bis dahin gerade mal ein wenig C und war noch etwas überfordert. Er programmierte viel damit. z.b: einen Builder, mit dem man Rettungs-CDs erstellen kann (LSP-Builder).

    Irgendwann vor knapp 2 Jahren wollte ich für meine RettungsCDs ein grafisches Menü haben, da der GRUB-Bootloader auf textbasis nicht wirklich toll aussieht. Ich habe es auch geschaft, aber es war verdammt viel Arbeit. ...aber so etwas kann man doch keinem zumuten... .....kann man das nicht automatisieren? ..hmmm... Ein Programm mit einer schönen Oberfläche ?
    Bis heute kann ich mit C keine GUI erstellen. ...also was nehmen?! Ha! Backpapier... ähh... AutoIt :D

    Ich habe mir hier im Forum die deutsche Hilfe heruntergeladen und dann klein angefangen. Und siehe da... nach einem Tag war die erste Version fertig.. ... mein erstes AutoIt-Programm. Dieses Erfolgserlebnis hat mich daher etwas geprägt und ich begann viel Freude daran zu entwickeln. Nach kurzer Zeit war mein Programm mit knapp 4000 Zeilen fertig und habe es veröffentlicht: http://www.livesystem-pro.de/showthread.php…fo-Download-FAQ

    Mein erstes Programm, das Bilder (wenn auch extern) bearbeiten konnte und so konvertierte, dass es für den Bootloader darstellbar ist.


    Seit kurzem bin ich auf dem Microcontroller-Trip. Ich habe mir ein Raspberry Pi zugelegt (richtig geiler, günstiger, kreditkartengroßer kleinst-Computer) und wollte mir ein Osziloskop programmieren. Aber GDI+ ist langsam :(. Ich suchte nach anderen Graphic-Engines und merkte, dass Direct2D, QuickDraw und Irrlicht nicht so das wahre sind. So stieß ich immer wieder auf dieses Forum insbesondere auf die Beiträge von UEZ, die mir zeigten was man mit GDI+ so alles machen konnte. Also musste ich erstmal ein Programm schreiben, um zu testen wie Leistungsstark GDI+ ist. Das ist hier dieses kleine Benchmark-Programm. Die Werte waren so gut, dass ich meine erste UDF schrieb. Und aus Dankbarkeit an dieses Forum habe ich mich hier registriert um wieder etwas zurückzugeben und um eventuell mal anderen Usern helfen zu können.

    hier ist die UDF: [MultiGraph UDF] - dynamischer GDI+ LineGraph (als Software-Oszilloskop geeignet)

    Wer will, kann ja mal Beispiel 3 starten und posten, wieviele FPS ihr bei den Standard-Einstellungen habt :D


    lg
    SBond

    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond

  • Danke für die ausführlichen Bericht und willkommen an Bord!

    Ich hoffe, wir sehen noch viele tolle Skripte von dir!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • SBond: sehr interessanter Findungsweg. Mal endlich was anderes als diese ganzen Botgeschichten.
    Thema Grafikengine: Schau dir mal OpenGl an. Sehr schön für 3D- und 2D-Sachen. Und flüssig.

  • etwas späte Antwort....

    OpenGl ist schon ganz interessant, aber ich komme nicht so wirklich damit klar.

    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond

  • Update 09.06.2013: noch ein Leistungstest (mit PureBasic und C)


    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/68438584/Arduino-Control/Performance-Test/Performance-Test%20-%20PureBasic%20x86.jpg]


    die Dateien gibt es im ersten Beitrag ;)

    ich bin ein Raspberry Pi, Arduino und ATMega-Fan :D

    Nicht vergessen:
    41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

    :thumbup:


    lg
    SBond