Keep in mind that that I'm trying to basically debug someone else's software from a
single data point and a lot of speculation. But I do have a fair amount of experience in the area of performance, and the reality is that even with some of the most powerful hardware, you can write software that stutters, lags, and generally frustrates users that has nothing to do with the hardware at all. Or more specifically, we've gotten to the point where it is possible through software to "mask" the limits of the hardware/network. And a lot of this is engineering technique, rather than a set of tools.
But yes, if there's a performance problem (especially a stutter like shown in the video), it tends to be software. And it's also usually related to doing work on the main thread where animations happen, or blocking the main thread during an animation waiting for work to finish. There's also a mantra of "don't over-engineer your code until you have to" in many companies, so you don't architect something complicated unless there's a real need. And in this case, I'm honestly not really sure any one animation related to the springboard is worth the engineering time when you compare it to other work in the backlog these people have, that requires that I know what their backlog of work actually is. Especially since each animation may require different work to smooth it out, and there is no "one true fix".
For example, if my speculation is right, I can think of a few things that would prevent stutter, but make other trade offs:
1) I can cache more aggressively in RAM, at the expense of less RAM for
all apps (since Springboard is always running).
2) I can cache information about the apps to reduce the number of times I have to query the disk. This trades off disk space, but is probably the most reasonable approach since it reduces the complexity of my disk access immensely. Opening a plist, parsing it for the app icon filename, opening that, and then pulling out the icon I need is not cheap.
3) I can decide to not try to block the animation with fetching the icons and allow "pop-in" of the app icons. Apple probably already threw this one out, and I don't blame them.
4) I can try to be super smart about which icons I get, and split up the work over multiple frames of the animation. This one is probably the most complicated approach, but doesn't require a change in how the icons themselves get cached.
5) There may simply be a bug where the cache is forcibly refreshed too often from the App's plists.
But the reason I ask you, is because my speculation would be a bit better if I had more than just one data point for people hitting the issue. Two if I count myself as someone who isn't seeing the issue, and comparing the two situations.