FPS Speedtest, Bremse und warum hängt sich das Programm auf
Übersicht

![]() |
GarfieldBetreff: FPS Speedtest, Bremse und warum hängt sich das Programm auf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe in einem früheren ausführlichem Posting über FSP Bremse vs. Speedberechnung einen Code gefunden, den ich in meinen FPS Speedtester eingebaut habe. Leider hängt sich das Programm immer auf, bzw. es hängt offensichtlich in einer Endlosschleife in der Zeile
Delay time4 ;delay execution Ich verstehe das nicht, alle 10 Versuche läuft das Programm einmal... mit FPS zähle ich die Anzahl der FLIPS´s pro Sekunde, nicht die Anzahl der Bildberechnungen BlitzPlus 1.35 Runtime 1.37 Code: [AUSKLAPPEN] ; FPS Tester ; BlitzPlus 2004 Winfried Rothenberg Graphics 800,600 Global FPSTimer Global FPSRate = 25 Global FPS fRate = (1000/25) ;*set second number to desired frame rate* Global FPSZeit = 1000/FPSRate FPSZeit = FPSZeit -1 Timer = MilliSecs() FPSTimer = MilliSecs() While Not KeyHit(1) time1 = MilliSecs() ;time at start of processing loop If MilliSecs() - timer >999 FPSAnzeige = FPS Timer = MilliSecs() FPS = 0 EndIf ;Rechenprogramm(5) ; zum Leistungstest ;If MilliSecs() - FPSTimer > FPSZeit Text 200,100,MilliSecs() - FPSTimer Text 200,200,"FPS = "+FPSAnzeige Text 200,400,time4 Flip Cls FPS = FPS+1 FPSTimer = MilliSecs() ;End If time2 = MilliSecs() ;time at end of processing loop time3 = time2 - time1 ;number of miiliseconds to process loop time4 = fRate - time3 ;number of milliseconds to delay each processing loop to achieve dynamically accurate framerate Delay time4 ;delay execution Wend End Function Rechenprogramm(Anzahl) For z = 1 To Anzahl For x = 1 To 1000000 Next Next End Function End |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm?
Bei mir läufts einwandrei. BlitzView-B3D 1.86. cu Linux |
||
![]() |
Garfield |
![]() Antworten mit Zitat ![]() |
---|---|---|
In BB2D läufts auch immer einwandfrei, nur in BPlus gehts maximal 1x dann immer "aufhäng" ![]() |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht wird ein Befehl benutzt der in + Schwierigkeiten macht.
Ich habe DELAY im Verdacht. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das in der B+Demo getestet und es läuft | ||
[BB2D | BB3D | BB+]
|
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
In dieser Zeit kann kein Befehl ausgeführt und keine Grafik ausgegeben werden. Um eine bestimmte Programmgeschwindigkeit zu erzwingen, ist dieser Befehl ungeeignet - benutze besser CREATETIMER.
Aus der Online-Hilfe,vielleicht hängst da! |
||
![]() |
Garfield |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den Verdacht habe ich auch, daß Windows in einen undefinierten Zustand gerät, wie gesagt, alle 10 Starts funktioniert das Programm, in BB2D gehts immer.
Ich habe ja immerhin im Hintergrund so einige Progs in Windows laufen, wie z.B. T-DSL Manager, AntiVir.... irgendwas ist da in Plus faul...... Was ich eigentlich will, darum das UrProgramm mit dem FPS Test, die Grafikausgabe mit FLIP soll nur in einer bestimmten Framerate erfolgen. deswegen die If Then Bedingung, die jetzt ausge"REM"´t ( ![]() Ich möchte, das nur alle 40 ms (FPS 25 1000/25) in die FLIP Routine gesprungen wird |
||
![]() |
Garfield |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit dem DELAY- Bug ahbe ich noch nicht herausbekommen.
Ich habe mein ursprüngliches Programm etwas geändert: Code: [AUSKLAPPEN] If MilliSecs() - FPSTimer > FPSZeit Diff = MilliSecs() - FPSTimer FPSTimer = MilliSecs() ; <--------------------------- verschoben!! Text 200,100,"DeltaT= " + Diff Text 200,200,"FPS = "+FPSAnzeige Text 200,400,"time4= "+time4 Flip Cls FPS = FPS+1 End If jetzt gibt er exakt 25 Frames aus demnächst mehr darüber Hier komplett: Code: [AUSKLAPPEN] ; FPS Tester
[/code]
; BlitzPlus 2004 Winfried Rothenberg Graphics 800,600 Global FPSTimer Global FPSRate = 25 Global FPS fRate = (1000/25) ;*set second number to desired frame rate* Global time1 Global time2 Global time3 Global time4 Global FPSZeit# = 1000/FPSRate FPSZeit = FPSZeit -1 Timer = MilliSecs() FPSTimer = MilliSecs() While Not KeyHit(1) time1 = MilliSecs() ;time at start of processing loop If MilliSecs() - timer >999 FPSAnzeige = FPS Timer = MilliSecs() FPS = 0 EndIf ;Rechenprogramm(5) ; zum Leistungstest If MilliSecs() - FPSTimer > FPSZeit Diff = MilliSecs() - FPSTimer FPSTimer = MilliSecs() Text 200,100,"DeltaT= " + Diff Text 200,200,"FPS = "+FPSAnzeige Text 200,400,"time4= "+time4 Flip Cls FPS = FPS+1 End If time2 = MilliSecs() ;time at end of processing loop time3 = time2 - time1 ;number of miiliseconds to process loop time4 = fRate - time3 ;number of milliseconds to delay each processing loop to achieve dynamically accurate framerate ;Delay time4 ;delay execution Wend End Function Rechenprogramm(Anzahl) For z = 1 To Anzahl For x = 1 To 1000000 Next Next End Function End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group