Seite 1 von 1

Verbesserung der Leistung

Verfasst: 06.07.2010 11:01
von Ostblock_D
Hallo miteinander,

ich bin ein Anfänger in PureBasic und hab mich an die Programmierung einer simplen Grafik 'Animation' gemacht.

Code: Alles auswählen

w = 512
h = 512

rot = 200
gruen = 200
blau = 200

If OpenWindow(0,0,0,w,h,"2D Drawing Beispiel",#PB_Window_SystemMenu | #PB_Window_ScreenCentered )
  
  CreateImage(0,w,h)
  StartDrawing(ImageOutput(0))
  Box(0,0,w,h,RGB(255,255,255))
  StopDrawing()
  
  Repeat
    StartDrawing(ImageOutput(0))
    Circle(w/2,h/2,h/2-100,$00FF00)
    Circle(w/2,h/2,h/2-105,$FF0000)
    FillArea(w/2,h/2,-1,RGB(rot,gruen,blau)) ; Ersetze -1 durch $00FF00 , und vergleiche das Ergebnis
    rot = rot - 20
    gruen = gruen - 20
    blau = blau - 20
    
    StopDrawing()
    SaveImage(0, Str(rot) + ".bmp")
    ImageGadget(0,0,0,w,h,ImageID(0))
    
  Until(rot < 20)
EndIf
Mein Ziel war es dass nach jedem Schleifendurchlauf das Ergebnis als Bmp gespeichert wird. Was mir ja auch soweit gelungen ist.
Nun zu meiner eigentlichen Frage. Kann ich dieses Program irgendwie beschleunigen bzw. lässt sich der Code verbessern? Wundere mich nämlich dass es bei mir ziemlich langsam läuft :o

Danke schonmal und viele Grüße
Daniel

Re: Verbesserung der Leistung

Verfasst: 06.07.2010 11:13
von STARGÅTE
was heißt langsam läuft ?

Zeitmessung ohne Debugger ergibt : 132 ms also 0,132 s
Das "langsamme" ist hier das erstellen der Bilder die immerhin zusammen 7,69MB groß sind.
Das schreiben auf die Festplatte läuft also hier mit ca 60MB/s ...
das ist "völlig normal".
Gute Festplatten kommen an 125 MB/s ran, ältere dagegen gerade mal üner 30MB/s
Quelle: Bild Festplattenlaufwerk - Geschwindigkeit

Re: Verbesserung der Leistung

Verfasst: 06.07.2010 11:51
von Ostblock_D
ok, mein Fehler ... ich habe vom USB-Stick aus gestartet. Da dauert es schon ein paar sekunden :doh:
Gibt es bei PureBasic eine Option um Performance-Messungen zu machen???

Ist der Code ansonsten sinnvoll aufgebaut?

Re: Verbesserung der Leistung

Verfasst: 06.07.2010 12:03
von Kiffi
Ostblock_D hat geschrieben:Gibt es bei PureBasic eine Option um Performance-Messungen zu machen???
Debugger ausschalten (nicht mit DisableDebugger, sondern über Menüzeile Debugger/Use Debugger)

Code: Alles auswählen

Z1=ElapsedMilliseconds()
MeineProc()
Z2=ElapsedMilliseconds()

MessageRequester("Benötigte Zeit", Str(Z2-Z1) + " ms")