Sorry if i am a purist of saving resources, but in this case, i think it is a disproportionate consumption. About 80% of CPU inter-frame time at 60Hz.
Can be done something?

Code: Select all
InitSprite()
If OpenScreen(800,600,32,"")
CreateSprite(0,100,100)
BeginTime=ElapsedMilliseconds()
For it=1 To 3000
start=ElapsedMilliseconds()
If StartDrawing(ScreenOutput()) : StopDrawing() : EndIf ; <- Comment me !
Drawtime+(ElapsedMilliseconds()-start)
ClearScreen(100,100,80)
start=ElapsedMilliseconds()
For itspr=1 To 400
DisplaySprite(0,Random(700),Random(500))
Next
SpriteTime+(ElapsedMilliseconds()-start)
FlipBuffers(0)
Next
TotalTime=ElapsedMilliseconds()-BeginTime
CloseScreen()
advert$="Total time : "+Str(TotalTime)+#lf$+"Drawing time : "+Str(drawtime)
advert$+(#lf$+"Sprites time : "+Str(SpriteTime))
advert$+(#lf$+"Drawing+Sprites : "+Str(DrawTime+SpriteTime))
MessageRequester("",advert$)
EndIf

Code: Select all
InitSprite()
If OpenScreen(800,600,32,"")
CreateSprite(0,100,100)
BeginTime=ElapsedMilliseconds()
For it=1 To 3000
start=ElapsedMilliseconds()
StartDrawing(ScreenOutput()) : StopDrawing()
Drawtime+(ElapsedMilliseconds()-start)
ClearScreen(100,100,80)
start=ElapsedMilliseconds()
For itspr=1 To 160
DisplaySprite(0,Random(700),Random(500))
Next
SpriteTime+(ElapsedMilliseconds()-start)
FlipBuffers(0)
Next
TotalTime=ElapsedMilliseconds()-BeginTime
CloseScreen()
advert$="Total time : "+Str(TotalTime)+#lf$+"Drawing time : "+Str(drawtime)
advert$+(#lf$+"Sprites time : "+Str(SpriteTime))
advert$+(#lf$+"Drawing+Sprites : "+Str(DrawTime+SpriteTime))
MessageRequester("",advert$)
EndIf 