High CPU Usage on Desktop Website

to be fair, the iNaturalist website is doing a lot, has a lot of graphics, and it seems to be built in a way to allow for maximum configurability and modularity (think different languages, API to allow for different UIs, etc.). so i don’t think the way it performs is that bad considering all that.

that said, there are always ways to make things a little more efficient (assuming there is the manpower to do so). for example:

  1. if you open up an observation detail page, there are “More from [observer]”, “Nearby observations”, and “Observations of relatives” sections that i bet most people never use. maybe if there was an option to collapse these sections and make the stuff load only if expanded, that could save on resources a bit.
  2. when i had a really slow internet connection, i really hated when someone identified something to a really high level (ex. plants) because it would always take extra time to load (the stuff for) all the extra little points in the map for nearby (plant) observations. i think there was a suggestion at some point to add a little switch to allow someone to see nearby observations or not, and something like that might help.
  3. it looks like the average observation detail page has maybe 1-2MB worth of pictures and other stuff to download. but it also looks like for each tab that’s opened, there’s 1.5MB worth of fonts downloaded (including maybe a duplicate?) and 2MB worth of system code loaded. there might be ways to chop things up into smaller pieces or cache stuff better or share stuff between tabs better. (but all that takes manpower.)

if someone really wanted to, there’s nothing that prevents a person from creating a more streamlined version of the iNaturalist website (via the API) that could run faster because it does less. or i bet you could even help to streamline the core iNat code, if you have the coding ability and time and don’t mind working for free. it would probably be a good thing anyway to have more than just a handful of people who understand the code just in case…

5 Likes