| |
|
|
p.specht
| Jens-Arne Reumschüssel fand en supplément une Solution, qui sans API-Fummelei auskommt et une deutliche Beschleunigung sowohl im Interpreter comme aussi Compiler bringt. en supplément ici mon kleiner Benchmark.
Titre de la fenêtre "Messageabholendes Waitinput beschleunigt:"+\
" Solution de Jens-Arne Reumschüssel testen"
CLS:Randomiser:font 2
declare n&,tm&,i&,x&,y&,txt$,ungueltig&
$IFNDEF COMPILER
txt$="INTERPRETER"
n&=2500
$ELSE
txt$="COMPILER"
n&=4000
$ENDIF
AppendMenuBar 100," "+txt$+" zählt jusqu'à "+str$(n&)+\
". ESC-bouton soll erkannt volonté et détruit den laufenden Test!"
imprimer "\n OHNE Beschleunigung:",:x&=%pos:y&=%csrlin
waitinput 3:sound 200,20:ungueltig&=0
tm&=&GetTickCount
Whileloop n&:locate 20,20:imprimer &Boucle;" ";
i&=&Boucle
waitinput 3
si %Key="27":ungueltig&=1:pause:endif
Endwhile
tm&=&GetTickCount-tm&
locate y&,x&
ifnot ungueltig&: imprimer tm&,"ms"
d'autre :imprimer "<abgebrochen>":clear ungueltig&
Endif
imprimer "\n NUR Fastmode:",:x&=%pos:y&=%csrlin
waitinput 3:sound 200,20:ungueltig&=0
tm&=&GetTickCount
set("Fastmode",1)
Whileloop n&:locate 20,20:imprimer &Boucle;" ";
waitinput 3
si %Key="27":ungueltig&=1:pause:endif
Endwhile
set("Fastmode",0)
tm&=&GetTickCount-tm&
locate y&,x&
ifnot ungueltig&: imprimer tm&,"ms"
d'autre :imprimer "<abgebrochen>":clear ungueltig&
Endif
imprimer "\n NUR MIT rnd()-chance:",:x&=%pos:y&=%csrlin
waitinput 3::sound 200,20:ungueltig&=0
tm&=&GetTickCount
Whileloop n&:locate 20,20:imprimer &Boucle;" ";
si rnd()>0.95
waitinput 3
si %Key="27":ungueltig&=1:pause:endif
endif
Endwhile
tm&=&GetTickCount-tm&
locate y&,x&
ifnot ungueltig&: imprimer tm&,"ms"
d'autre :imprimer "<abgebrochen>":clear ungueltig&
Endif
imprimer "\n LÖSUNG de Jens-Arne R.: Fastmode avec %PeekMessage:",:x&=%pos:y&=%csrlin
waitinput 3:sound 200,20:ungueltig&=0
tm&=&GetTickCount
set("Fastmode",1)
Whileloop n&:locate 20,20:imprimer &Boucle;" ";
si %PeekMessage
waitinput 3
si %Key="27":ungueltig&=1:pause:endif
Endif
Endwhile
set("Fastmode",0)
tm&=&GetTickCount-tm&
locate y&,x&
ifnot ungueltig&: imprimer tm&,"ms"
d'autre :imprimer "<abgebrochen>":clear ungueltig&
Endif
imprimer "\n OHNE JEDE ABFRAGE:",:x&=%pos:y&=%csrlin
waitinput 3:sound 200,20:ungueltig&=0
tm&=&GetTickCount
Whileloop n&:locate 20,20:imprimer &Boucle;" ";
Endwhile
tm&=&GetTickCount-tm&
locate y&,x&
ifnot ungueltig&: imprimer tm&,"ms"
d'autre :imprimer "<abgebrochen>":clear ungueltig&
Endif
hold:
sound 2000,60
Waitinput 7000:casenot %wmtimer:goto "hold"
FIN
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 29.05.2021 ▲ |
|
|
|