Updating the iOS version on an old iPhone tends to make basic operations like startup, placing calls, and checking settings take longer. The change from eg iOS 7 to 8 on an iPhone 4S has a very perceptible effect.

I can understand why newly introduced features are more demanding therefore require more CPU time to run, but this does not explain why an iPhone running iOS 7 would take 4 seconds to display text messages, but the exact same iPhone takes 9 seconds to display the exact same messages when it is running iOS 9.

What causes this? If one were to run a profiler on an app that takes n seconds on an iPhone running iOS7 and n+m seconds on an identical phone running iOS9, then some bars in that profile must be longer by m seconds. Which ones are they?

  • I'm asking this question here because I don't have the equipment to run side-by-side profiles of identical phones running different iOS versions, nor the domain expertise to deduce what's going on inside iOS from profiles. But perhaps someone else has looked into this, or has some general insight into the problem.
    – Crashworks
    May 23, 2016 at 18:32
  • 1
    While this may be an interesting question it's not even close to being on-topic here.
    – MetaFight
    May 23, 2016 at 21:13
  • @MetaFight Where is an appropriate place to ask "which syscalls are characteristically more costly on iOS9 profiles than iOS7 profiles and why"?
    – Crashworks
    May 23, 2016 at 21:19
  • 1
    This site is more about software design. I'm not sure where you could ask your question. There must be plenty of apple forums around, no?
    – MetaFight
    May 23, 2016 at 21:21
  • 1
    Look up "planned obsolescence." It's a very old and very sleazy concept from durable goods (most notably light bulbs and automobiles) which Apple is bringing into the world of personal computing. Jul 11, 2016 at 18:04

3 Answers 3


Only Apple knows the actual answer to this question.

But one possible answer is that source code and compiler optimizations for particular CPU implementations and memory hierarchies can actually make a significant difference in user visible performance (and battery usage, etc.)

If the newer OS code was profiled and optimized on newer devices with CPUs that had larger caches, less pipeline hazards, and better branch prediction (etc.), then that code, when run on older devices, would see more data and instruction cache thrashing, more pipeline stalls, and more branch misprediction pipeline flushes, all of which can slow down visible performance.

One typical (de)optimization is to enlarge various data structures to add features and better generalize and future-proof them (32 to 64 bit fields, etc.). But if this makes the difference between cache residency and cache trashing on different processor systems, the local performance difference can be over an order of magnitude.

  • For instance, wikipedia says that the Apple A5 chip in the 4s has 32k L1 and 1MB L2 caches, whereas the A9 in the 6s has 64k L1, 3MB L2 and 4MB L3 caches.
    – hotpaw2
    Jul 12, 2016 at 17:32

Because optimization for devices that are going out of fashion isn't a high business priority for Apple.

Things don't often naturally get faster/better on their own, it's like the 2nd law of thermodynamics, natural tendency is towards disorder. See also open-closed principle (part of SOLID), systems are most often open for extension but closed for modification. Only modification can really optimize existing components.

Therefore there has to be conscious resource allocation to making things simpler, more elegant, faster, more maintainable etc. And the business desire for that resource allocation just is not there.

  • While this is plausible as a social primary cause, I'm really asking about the technical proximate cause: what code is in the new OS that isn't in the old OS and causing things to run slower?
    – Crashworks
    Jul 11, 2016 at 20:14

It occurs due to the new upgradations made by the developers to their apps so that it can cop-up with the better functionalities of the new hardware which further results in a time lag for older devices.It also occurs due to the GUI improvements made by Apple to the iOS which leads in longer operation times. I also have an iPad mini.As it has a 32-bit processor so it has decent performance but comparing it to the new iPad Pro which has a 64-bit processor the new features designed for the 64-bit processor leads up due to the string size and this result in better performance which iPad mini can't obsese

  • 1
    Hold on while I get my tinfoil hat. Jun 11, 2016 at 18:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.