Spent another day trying to optimize scroll performance in Nos. I was able to cut the hitch rate from 60ms/s to 35ms/s, but it’s very slow and tedious work.

One problem I keep bumping into is images. Some aren’t compressed or don’t have a supported color format and iOS has to convert them on the CPU before they can be passed to the GPU for rendering causing dropped frames. Then some are so big that they spend too long getting rendered and cause dropped frames. We display a lot of little avatar images in Nos in addition to the images linked in notes. Are other clients doing any tricks to help with this?

Reply to this note

Please Login to reply.

Discussion

The best performance optimization I've come up with for Satellite is to "lazy render" items in long lists. The app listens for the position of each element and only starts to render it when it gets close to coming onscreen. The helps by reducing the number of images that have to get loaded at once, but I suppose the root cause is a lot unoptimized images getting uploaded in the first place. If we wanted to go nuclear on this problem we could set up a server that acts as a proxy to generate and cache thumbnails.