Is there/will there be performance profiling tools or guide?

Most of the issues I have with Appgyver seem to be related to performance. I run into crashes or laggy behavior pretty often with the Preview app, usually my fault, but sometimes it’s hard to isolate what exactly is going on. Several times I’ve found race conditions in my code that caused crashes, but I had to just experiment to figure out what was going on - there’s no systematic way to see it. I’ve tried to look through the Flow functions in the debugger, but I can’t make heads or tails of the information there.

In another instance, I have an app that runs fine in Preview, but crashes in production, and I have no idea how to get more insight into those crashes. So…I’m left trying things to see what helps, but having to wait until I push to production to test obviously isn’t sustainable.

I think most of my problems could be solved if I could either 1) see how much CPU was being allocated to various processes or 2) at least had some guidelines of things to do/not to do.

Do you guys have anything like this in the works?

Hi!

Unfortunately there isn’t anything regarding CPU or similar, but as far as I know we do have plans to improve the way the flow functions are displayed in the debugger to make it easier to understand etc.

However, it’s a good idea to make documentation on how to make performance better :thinking:

Some quick tips:

  • Remove refresh loops from data logic canvases, unless you really really need them. We have a best practice of fetching data on global canvas and then stuffing it into an app variable to use throughout the app, whenver this is feasible
  • Don’t run logic both on page mounted and page focused unless it’s necessary – in general you should aim to run logic only when needed
  • Use RecyclerView for long lists

Thanks, that’s helpful!

1 Like