Slowness on old projects


#1

@ThinBuffalo I'm trying to track down the slowness you reported with this project:

On the device, I went back a few versions of Hopscotch and couldn't notice a difference in performance although it wasn't super fast on any of them.

On the web I have seen it have issues at times where it stutters and only produces a few clones before stopping but it only seems to do this if I click around the screen while it's loading which to me indicates less of a performance thing than some sort of unexpected consequences of triggering rules before the clone counting thing you do is finished.

Do you have any more info on this? I'd love to fix any sort of performance regression on old projects if possible.

Is there any one else who can show me an old project that got slower with the "self" release of Hopscotch?


#2

Hi @Thomas! I have not tried out any of my old projects that uses values, but I am on an old Hopscotch version (before the iPhone editor got on the iPad), so I can try to maybe make and test some of the projects on the latest HS update on another device. I will get back to you if I find something interesting!


#3

Well, I believe this project is supposed to load ~2x faster.

This project has loaded extremely quickly in one random case while I was making the project, but when I reloaded the project, it went back to its normal speed of about 4 bars per second, meaning that the objects that are drawing the logo are drawing 4 strips of trail at a time.

I'd assume that the project is normally supposed to go faster because of that one random time it occured, but I wouldn't know this. I also couldn't get it to repeat the fast loading speed again.

I am using an iPad Air 1 on iOS 10.2.


#4

That project was made using the latest version, I can look into it separately but right now I'm only interested in pre-webplayer projects.


#5

Also there is a known bug with the speed of things on old devices when you are working on a draft for the first time. We will fix it eventually.


#6

Ah, that makes sense. I'll look into the bug.


#7

Hi @thomas

I'm beginning to suspect that you may have a problem with the new player that's independent of the app version of the specific project. However, what I'm seeing may also be independent problems with similar "slowness" results. I've created new 3.13.0 projects that appear to run much slower than the same code would have previously. Not to get sidetracked, I'll come back to that later.

In the OP you mention that

I get significantly different results.

I've 2 different devices with different versions of Hopscotch. To quantify the differences, I added a second object as an FPS meter on modified versions of the project on both devices.

Device 1: iPhone 6S
iOS: 10.2
Hopscotch version: 3.7.1
The project plays at ~60 FPS while creating clones, after drawing, while drawing. Always.

Device 2: iPad Air
iOS: 10.2
Hopscotch version: 3.13.0
FPS while creating clones: 57-60
FPS when clones enter spinning Repeat Forever: 39-40
FPS when drawing (When Pressed -> Set position): 12-13


Help us squash some bugs
#8

Thanks for this info, I didn't try going back as far as 3.7. I might try to check this difference out, but going back that far requires changing XCode versions and is actually pretty time consuming.

Unfortunately we will probably allocate relatively fewer resources to fix performance regressions on pre v25 projects.

However if (as you mentioned) you have some particularly slow projects that run much slower on v25+ than the same rules would have run on v24- we're definitely interested!

I also just wanted to say thanks again for your feedback and time. I know that making these bug reports isn't trivial and each one is a big help to us and really the whole Hopscotch user base who benefit from performance improvements.


#9

You're welcome @thomas

Regarding a difference (slowdown) in project performance for the latest app version... can you see my drafts? My most recent draft is called Watercolor Pad. It's in-process but you'll see that creating just a couple hundred clones slows the FPS to 40-45.

The key is that the clones don't have any infinite loops. After the initial "paint" routine, they just sit statically. In the prior app version I could have 1024 objects sitting statically and the FPS would have still been ~60. With the latest version, just creating clones even if they're not "doing anything" significantly degrades the performance.

This is really frustrating and negates the otherwise exciting addition of self references.


#10

This is interesting and I will have to look into it more but a few notes from my first check through:

On my laptop, I never saw this get very slow even with 2k clones. I'll try it on an iPad later today.

Although the clones aren't doing much, they appear to be changing their opacity. Transparency is one of the most performance intensive tasks for the GPU so the slowness may be caused by that. When I profiled the time spend in our renderer vs. the time spent in our rules engine, most of the time was being spent in the renderer.

It seems like Hopscotch might be able to do some optimizations for completely transparent objects that we aren't doing right now.


#11

@thomas Interesting information. The opacity changes only occur for a finite number of loops, so I expected the project speed to be unimpacted once the loop ended, however I hadn't considered that the renderer would have an ongoing load on the GPU. I'll have to think more about this later on when I have more time.

One initial comment is that the FPS (displayed in the project) reads only 10 when I draw long enough to have 2k clones on my iPad Air.


#12

@thomas I removed the opacity changes & after 1k clones are created, the reported FPS is already down to 15 from 60

Edit: I made a new project (draft: Another FPS test) where, other than a text obj for FPS & a text obj to monitor clone count, all it does it make 2k clones of a circle. The only code for the clones is a one time 'count' increase. At 2k clones the project, sitting idle, reports 7 FPS. This is similar and actually slightly worse than the other project where the cloned circle's transparency was changed for a period of time. Thoughts?


#13

I was looking at my project Jedi Adventures, and it about 10x more slow than what it was when I posted it.

Maybe the beta tests affect this?


#14

I am confused, editor version? Pretty sure there's one version of hopscotch that I'm used to


#15

Slow? Hm thats weird


#16

Revive

Same thing is happening with my E-Pad and Minigames

Both have FPS Trackers - used to be 60-62 [Perfect]

Perhaps it is the bump trigger? (Because that slows down new projects as well)

What happened when I removed all bump triggers from E-Pad though:

nothing nothing nothing Nothing nothing absolutely nothing


#17

The change in performance is due to the webplayer. After THT implemented the webplayer many projects slowed down significantly. However, I believe THT is highly unlikely to change this as they value the webplayer’s cross-platform capability.


#18

Is the player in the app a web view then?


#19

Yes, the app uses the webplayer now too.


#20

How about android web?