ベンチマーク(lspとamsp)

続いて念のためのベンチマーク
既存のスプライトを動かすamspを使うのと、lspでいちいち描画するのとではどっちが早いか。
結果はなんとなく想像つくけれども、一応。

スクリプト

*define
game
*start
9
wait 1000
8
wait 1000
7
wait 1000
6
wait 1000
5
wait 1000
4
wait 1000
3
wait 1000
2
wait 1000
1
wait 1000
0
wait 1000
erasetextwindow 0

lsp 0,":s/100,100,0;#FF0000●",-100,0
textclear
amspを使った場合。
resettimer
for %1=0 to 10
for %0= -100 to 640
amsp 0,%0,%1
print 1
next
for %0= 640 to -100 step -1
amsp 0,%0,%1
print 1
next
next
gettimer %11

textclear
lspを使った場合。
resettimer
for %1=0 to 10
for %0= -100 to 640
lsp 0,":s/100,100,0;#FF0000●",%0,%1
print 1
next
for %0= 640 to -100 step -1
lsp 0,":s/100,100,0;#FF0000●",%0,%1
print 1
next
msp 0,0,1
next
gettimer %10

textclear
%10
%11

gosub *screenshot
click
end

*screenshot
getscreenshot 640,480
date %101,%102,%103
time %104,%105,%106
mov $100,"20"
for %100=101 to 106
if %%100<10 add $100,"0"
itoa $%100,%%100
add $100,$%100
next
add $100,".bmp"
savescreenshot $100
return

結果


上段がlspによる数値。下段がamspによる数値。

実行する順番を入れ替えての結果(やはり上段がlsp、下段がamsp)。
やはり、いちいちスプライトを作成するよりも、既存のスプライトを動かした方が速度的に有利。