;; Just to tidy the results up a bit
alias -l trim return $left($base($calc($$1 / 1000),10,10,1,3) $+ 000,5)
alias looptest {
;;echo -a while: [5000runs, basic] [5000runs, short form] [9000runs, flagged at 5000] [9000runs, break'd at 5000] ~ goto: [5000runs, basic] [9000runs, goto end'd at 5000]
echo -a while: $trim($wtest) $trim($wtest1) $trim($wtest2) $trim($wtest3) ~ goto: $trim($gtest) $trim($gtest1)
}
;; the tests
;; [50000runs, basic]
alias wtest {
var %ticks = $ticks,%i = 0
while (%i != 50000) {
inc %i
}
return $calc(($ticks - %ticks))
}
;;[50000runs, short form]
alias wtest1 {
var %ticks = $ticks,%i = 0
while (%i != 50000) inc %i
return $calc(($ticks - %ticks))
}
;;[90000runs, flagged at 50000]
alias wtest2 {
var %ticks = $ticks,%i = 0
var %flag = $true;
while (%i != 90000) {
if (%i == 50000) { %flag = $true }
inc %i
}
return $calc(($ticks - %ticks))
}
alias wtest3 {
var %ticks = $ticks,%i = 0
while (%i != 90000) {
if (%i == 50000) { break }
inc %i
}
return $calc(($ticks - %ticks))
}
;; The GOTO tests
;; [50000runs, basic]
alias gtest {
var %ticks = $ticks,%i = 0
:start
if (%i <= 50000) {
inc %i
goto start
}
return $calc(($ticks - %ticks))
}
;;[90000runs, goto end'd at 50000]
alias gtest1 {
var %ticks = $ticks,%i = 0
:start
if (%i <= 90000) {
inc %i
if (%i == 50000) { goto end }
goto start
}
:end
return $calc(($ticks - %ticks))
}