Disabling Timer Coalescing in OS X Mavericks

If you’re an iOS developer, and you’re still developing apps that support iOS versions below iOS 7 (Like I am), then you might have noticed after upgrading to OS X Mavericks that the iOS 6 Simulator runs absolutely terribly. EVERY single animation in there runs at an incredibly choppy frame-rate, which makes most kinds of app testing relatively useless.

Today, I learnt from a little birdie that the reason for this issue is due to the new Timer Coalescing feature, introduced in Mavericks:

In OS X Mavericks, Timer Coalescing groups low-level operations together, creating tiny periods of idle time that allow your CPU to enter a low-power state more often. With its activity reduced up to 72 per cent, the CPU uses less energy, giving your battery a break too. This happens so fast you won’t notice a thing. And your Mac still gets just as much done just as quickly.

Apple – OS X Mavericks – Advanced Technologies (January 2014)

It would seem to make sense that as a result of Timer Coalescing, the timers that power the iOS 6 Simulator animations are getting coalesced themselves, and this is resulting in the strange behaviour (Curiously enough, the iOS 7 Simulator is fine though!).

In any case, apparently there is a console command that lets you disable Timer Coalescing across the system:

I tested it on my Mavericks Retina MacBook Pro and I can confirm that it works, and the iOS 6 Simulator works perfectly again!

I probably should mention though, by disabling Timer Coalescing, this will lower the battery efficiency of Mavericks. Although, it’ll probably be no less than what it already was at with OS X Mountain Lion.

Enjoy!

  • James White

    This setting seems to reset itself to “on” periodically on my Mac (not a portable, so I left the setting off)

    • Yeah! I think on my retina MacBook Pro, it resets back to on if you reboot the computer.

      I don’t really mind that though. I’m using the iOS 6 Simulator less and less now, so I don’t mind turning it on when I need it.

  • Pitagoras

    I can’t see anyconsole command…

    • Oh dear! That’s weird! The plugin I was using to embed GitHub gists died. :(

      Alright. I put it in manually for now!

  • Pitagoras

    oh got it… its in the picture… :)

  • Irvine

    How to enable timer coalescing?

    • Replace that ‘1’ at the end with a ‘0’.
      Or, just reboot your computer. :)

  • RealitySpeaks

    FWIW this has been fixed in Xcode 5.1. So, if you’ve updated to that, you should probably re-enable coalescing for the benefit of your battery.