ipad2 music / video streaming stutter - multitasking; no nice(1);-(
USE CASE:
- Upgraded ipad2 to 7.0.2: Using Music, or Safari + QuickTime or YouTube results in stuttering audio playback but no video stutter.
- Upgrade iphone 4s to 7.0.2: No observed music stutter.
STUTTER:
Appears to be many (uncountable) interrupts per second in audio playback.
RESEARCH:
Removed all background applications.
With this configuration, the stutter was not noticeably improved.
CHANGE:
ipad2 / Settings / General / Background App Refresh: ON
- HP Envy - ON
- Google Maps - ON
- Linux Journal - ON
- SF Chronical - ON
- Sportcycle - ON
With this configuration the stutter is so bad that the audio playback on the device (with or without headphones) is unbearable.
CHANGE:
- Individually disable each application results in better (less stutter) audio quality.
- Google Maps - AUTO-ENABLES!-(
- All other applications are well behaved and stay off
- DISABLED: background app refresh
With this configuration the stutter improved some more but there is still a noticeable stutter but it is tolerable to listen to.
If I had to guess, I would say 10+ interrupts / second with just enough latency to hear a slight audio degradation.
OTHER OBSERVED BEHAVIORS:
With the ipad2 and the above reductions in background processing / cycle consumption, the UI tends to be less sluggish.
HYPOTHESIS (If you couldn't tell I'm an engineer, this pretty much seals the deal):
- IOS 7 has no granularity in its multitasking dispatcher.
- It is either ON or OFF.
- There are no user-controls which prevent an application from self-asserting a background task ENABLE state if the user doesn't want that. (e.g. Google Maps)
- There SHOULD be an equivalent to nice(1) whereby background tasks are allowed to run but when the audio subsystem runs, it gets a far higher priority than other background tasks. (Don't know the under-the-hood process architecture, so I don't even know if that is possible.)
Given the heat from the user community and the obviousness (as an engineer) of the above research (you succeeded in getting me to work on my play device), I suspect that there are some tough engineering going on right now to solve these issues. Oh, the joys of releasing new product to the world;-} (My sympathies to the end-users impacted and the struggling engineers and a questioning eye to the architects who missed this obvious multitasking dispatcher prioritization scheme...)
iPad 2, iOS 7.0.2