Well, I tried to test on my devices.
I was able to run your test code on my PC and got about what I would expect. Fastest with no sprites created, next fastest with hidden sprites and slowest with visible sprites.
But, I cannot get my setup to work with broadcasting at the moment. I am currently living in a hotel (until at least mid-April). I tried connecting via my hotspot on my phone, but it didn't get through.
If I can get the broadcasting to work, then I will test again.
This is the code I tested with. It gets the average FPS for each stage and then displays the results at the end.
SetSyncRate( 0, 1 )
tst1# = 0
cnt# = 0
do
fps# = ScreenFPS()
tst1# = tst1# + fps#
cnt# = cnt# + 1.0
print("No Sprites")
print("FPS: " + str(fps#))
print("Benchmark: " + str(GetMilliseconds()/300.0,2) + "% finished.")
if GetMilliseconds() > 10000 then exit
Sync()
loop
tst1# = tst1# / cnt#
for i = 1 to 10000
createSprite(i, 0)
x = random(-500,500)
y = random(-500,500)
SetSpriteColor(i,random(0,255), random(0,255), random(0,255), random(0,255))
SetSpritePosition(i, x, y)
SetSpritePhysicsOn(i, 1)
next i
cnt# = 0
tst2# = 0
do
fps# = ScreenFPS()
tst2# = tst2# + fps#
cnt# = cnt# + 1.0
print("10000 Sprites")
print("FPS: " + str(fps#))
print("Benchmark: " + str(GetMilliseconds()/300.0,2) + "% finished.")
if GetMilliseconds() > 20000 then exit
Sync()
loop
tst2# = tst2# / cnt#
for i = 1 to 10000
SetSpriteActive(i, 0)
SetSpriteVisible(i, 0)
next i
cnt# = 0
tst3# = 0
do
fps# = ScreenFPS()
tst3# = tst3# + fps#
cnt# = cnt# + 1.0
print("10000 hidden Sprites")
print("FPS: " + str(fps#))
print("Benchmark: " + str(GetMilliseconds()/300.0,2) + "% finished.")
if GetMilliseconds() > 30000 then exit
Sync()
loop
tst3# = tst3# / cnt#
do
// check for done
if GetPointerPressed() = 1 then exit
Print("Baseline: "+str(tst1#))
Print("10000 visible Sprites: "+str(tst2#))
Print("10000 hidden Sprites: "+str(tst3#))
Sync()
loop
end
Cheers,
Ancient Lady
AGK Community Tester and AppGameKit Master