| |
|
|
| Manchmal teste ich mit einer einfachen Methode die Performance verschiedener Operationen.
Ich poste einfach mal die Resultate meines letzten Tests.
Die Zahl hinter dem Rem zeig die Anzahl der Durchgänge innerhalb von 3 Sekunden, also desto höher desto schneller.
Die Tests zeigen eigentlich was wahrscheinlich eh bekannt ist: Desto weniger Zeilen, desto schneller. Hinzufügen könnte ich: Das einzeilige if zählt hierbei wie eine eigenständige Zeile, die Funktion ABS hingegen ist schneller. Sicher liegt das auch daran dass das einzeilige if mehr zu tun hat - was aber auch bedeutet dass das einzeilige if nicht geeignet ist um die Performance zu erhöhen. KompilierenMarkierenSeparieren {$cleq}
float ball.xs,ball.ys,ball.rs
cls
long tme=gettickcount+3000,c
while gettickcount<tme{
c++
perfProc()
}
print c
waitinput
end
perfProc{
ball.xs=rnd(40)-20
ball.ys=rnd(40)-20
ball.rs=rnd(40)-20
/* 34500
case ball.xs>10 : ball.xs=10
case ball.xs<-10 : ball.xs=-10
case ball.rs>10 : ball.rs=10
case ball.rs<-10 : ball.rs=-10
case ball.ys<-10 : ball.ys=-10
case ball.ys>10 : ball.ys=10
*/
/* 41000
case abs(ball.xs)>10 : ball.xs=if(ball.xs<0,-10,10)
case abs(ball.ys)>10 : ball.ys=if(ball.ys<0,-10,10)
case abs(ball.ys)>10 : ball.ys=if(ball.ys<0,-10,10)
*/
/* 24000
ball.xs=if(ball.xs<-10,-10,if(ball.xs>10,10,ball.xs))
ball.ys=if(ball.ys<-10,-10,if(ball.ys>10,10,ball.ys))
ball.rs=if(ball.rs<-10,-10,if(ball.rs>10,10,ball.rs))
*/
/*
if abs(ball.xs)>10 {
if ball.xs<0 {
ball.xs=-10
} else {
ball.xs=10
}
}
if abs(ball.ys)>10 {
if ball.ys<0 {
ball.ys=-10
} else {
ball.ys=10
}
}
if abs(ball.rs)>10 {
if ball.rs<0 {
ball.rs=-10
} else {
ball.rs=10
}
}
*/
}
|
|
|
| |
|
|