Stability and Performance Update (v1.43)

Updated: May 25

This entry was imported from Group's former blog on Blogger written in 2020

As usual, I've managed to derail myself from my current goals (CSV and Chats) and have instead slaved my time away doing things that don't really add new features but improve current aspects of Groups

This new release includes many performance improvements that also add stability in older (and limited) devices

It all began one day this month when I went and bought an old iPad (iPad 4) for £80. Quite a good deal but also shocking since it's a 7 year-old, 32-bit device that in my opinion should have zero value by now.

What happened next is just embarrassing. I've gone from "I won't go near anything Apple" to "I love this thing (iPad 4)" and "I wish I could afford a newer one".

So long story short I stopped all ongoing Groups work (I was in the middle of implementing CSV) and decided that Groups must be able to run very smoothly on this antiquated device. Sorry!

iPad 4s use a 32-bit processor and have limited memory. Things can run very clunky if (as I was doing) processing power is exclusively taken up by your main UI thread.

So I added 3 new threads (1 for Bubble chart, 1 for Hierarchical, and one for I/O tasks) to take most of the pain away from my main UI thread. This made things run smoother but in turn exposed a myriad of race conditions. Pretty demoralizing stuff

Then compile, debug, test on device(s), rinse and repeat until things started to get sorted (eventually).

Anyway, hope there's someone out there who'll enjoy the results of this hard work. Charts now have "memory". They remember where you left off. One of the consequences of me trying to limit the amount of OOM crashes produced from reloading too much. Charts will still reload when changing Group, but as long as you keep working on the same group there should be zero overhead from switching views and menus. Also, if your chart happens to crash because resources are limited (think old devices), it will automatically reload.

There are plenty of tweaks and UI changes elsewhere. Most important are things like Bubbles don't need to reload when making changes, loading dialogs have been added where slow devices struggle the most and interfaces have been made iOS-friendlier. Lots of things but it would take too long and be too boring if I went into details

Thanks for using Groups!