Performance von SELECT und IF
Performance von SELECT und IF
Hallo zusammen,
ich bin bei der Optimierung eines Programmes und stelle mir die Frage was wohl grundsätzlich schneller ist:
Eine Select-Abfrage oder eine If-Abfrage. Persönlich verwende ich gerne wegen der Übersicht Select.
Gibts da Erfahrungen oder gar echte Fakten?
Gruß
Batzilla
ich bin bei der Optimierung eines Programmes und stelle mir die Frage was wohl grundsätzlich schneller ist:
Eine Select-Abfrage oder eine If-Abfrage. Persönlich verwende ich gerne wegen der Übersicht Select.
Gibts da Erfahrungen oder gar echte Fakten?
Gruß
Batzilla
PB 4.02
Ich stimme CSprengel zu, hier der Beweis:
Hatte auch gedacht das IF-Schleife schneller ist.
If ist auch besser weil man < u. > verwenden kann. Not, And,... gehen beim Select auch nicht!
PS. bei mir warens bei der IF 1375 ms und beim select 1875.
\\Edit:
Wenns dir so besser gefällt!?
Code: Alles auswählen
StartTime=ElapsedMilliseconds()
For x=0 To 10000000
If x=0
EndIf
Next
JetTime=ElapsedMilliseconds()
Debug JetTime-StartTime
Code: Alles auswählen
StartTime=ElapsedMilliseconds()
For x=0 To 10000000
Select x
Case 0
EndSelect
Next
JetTime=ElapsedMilliseconds()
Debug JetTime-StartTime
If ist auch besser weil man < u. > verwenden kann. Not, And,... gehen beim Select auch nicht!
PS. bei mir warens bei der IF 1375 ms und beim select 1875.
\\Edit:
Wenns dir so besser gefällt!?
Zuletzt geändert von Andreas_S am 22.04.2007 19:09, insgesamt 1-mal geändert.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Formulier das mal netter! Oder bist du gestört
?
Hört sich nicht nett an, wenn einem das gesagt wird, was?

Hört sich nicht nett an, wenn einem das gesagt wird, was?

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Man sollte derartige SPeedtests imemr ohne Debugger durchführen, weil der Debugger das Programm um bis zu 600% verlangsamen kann.
man erhält also in jedem Fall gefälschte (nicht brauchbare) Ergebnisse.
Besser ist es, die Elapsed-Zeiten in Variablen zu speichern und nachher in einem MessageRequester anzeigen zu lassen.
man erhält also in jedem Fall gefälschte (nicht brauchbare) Ergebnisse.
Besser ist es, die Elapsed-Zeiten in Variablen zu speichern und nachher in einem MessageRequester anzeigen zu lassen.

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Ich glaub du weisst nicht ganz was du tust. Bei mir sind die Ergebnisse 15 Ms und 29 MS.PBprogger hat geschrieben:Gut dann sinds hald 1797 ohne Debugger!

Windows 10 Pro, 64-Bit / Outtakes | Derek
Wie viel verbraucht bitte der Debugger???!
Habs jetzt so gemacht:
Ohne Debugger!!!
Jetzt 109 und 141 (mein Laptop ist anscheinend langsamer)
Danke And
Habs jetzt so gemacht:
Code: Alles auswählen
StartTime=ElapsedMilliseconds()
For x=0 To 10000000
If x=0
EndIf
Next
JetTime=ElapsedMilliseconds()
MessageRequester("Test",Str(JetTime-StartTime))
StartTime=ElapsedMilliseconds()
For x=0 To 10000000
Select x
Case 0
EndSelect
Next
JetTime=ElapsedMilliseconds()
MessageRequester("Test",Str(JetTime-StartTime))
Jetzt 109 und 141 (mein Laptop ist anscheinend langsamer)
Danke And
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte