I was about to do a DFU restore, but held back.
I really don't understand how a DFU restore can fix the problem.
DFU will just reset the firmware to whatever it should be, and that's it.
I get the theory that a broken download of the firmware could have weird effects, but it would be pretty amazing that a corrupted image would still boot and crash precisely on heavy web pages, with 5MB of minified javascript running.
Or that an upgrade could be busted, but just restoring to ipad and setting it up like a brand new device (which I did) should take care of that.
And I would be shocked if Apple didn't have some kind of hash verification of the image before bricking devices.
So, ok, you restore your firmware, the firmware has to come from somewhere, and that'll be the itunes you're connected to, meaning you'll get the exact same firmware you had the first time.
How is that supposed to fix anything?
Best case scenario, you start your device, do some testing, everything works fine because the device is under very light load (one tab, no backgrounded apps, you didn't set up mail yet, no icloud), you're happy and post here that it fixed the problem, you keep using it and 2 weeks later, the crashes come back.
Pretty much what I experienced with my last restore.
Getting tired of crashes, I just fired up the Activity Monitor instrument.
On my ipad1, with or without icloud, memory in use, about 120, free about 60, wired about 60, amounts up to roughly the device's physical ram.
I won't get too hung up on the missing few megs, not sure how instruments works here.
Anyway, the bottom line is: 60MB free, that's *really* not much. Apple did an amazing job on safari mobile, but still, webpages in 2011 are pretty fat, so it doesn't leave much room, and there's only so much you can do with pages that are 5MB of text, not even counting the assets.
Desktop safari gets in the GB ballpark after a few hours of usage.
Whether apps are backgrounded or not, I get roughly the same values. Not surprising knowing how iOS manages memory.
Now, 120 in use + 60 wired (or maybe the wired count against the used, but where did my extra 60 go then?) for a device doing nothing with no apps backgrounded sounds huge.
Would be worth running the same test against a 4.3 install, but I have better things to do than blow up my personal ipad and waste 2 days on that (I'll look for a 4.3 ipad at work though).
Then, opening up safari, I see low memory events flooding in (nothing unexpected actually, that's pretty much standard behaviour), a couple of "app terminated" events, which means iOS is doing its job of killing backgrounded apps holding on to (much needed) memory.
Then, on to loading pages known to crash safari mobile.
First, techcrunch. Loading page (blue progress bar), available memory drops, low memory warnings flood in, available drops, drops, down to 4MB, page finshes loading, back up to 12MB. Yay, it did it. Page has been hit previously, so very very likely to be cached.
Then I scroll, available ram drops, drops, drops, 2MB available, and boom, good bye safari. Sounds consistent with an out of memory crash.
On to google page status pages, notorious for always crashing safari, Same thing here. Page loads (blue progress in the url bar), memory drops, about 4MB available.
Page load happens, I suppose google's javascript is still running, a couple of seconds later, safari crashes, no available memory.
Ran the same thing on the fancy iphone 4s, with a truck load of apps running, including memory hogs (fruit ninja puss in boots, safari with a few tabs open etc).
Available memory, 90MB. Hu. Intersting.
On to the task bar, kill everything out there.
Physical memory used, 170, free 227, wired 75, amounts to about 500MB.
Now you talkin'.
And consistent with the fact that I had a really hard time getting iOS to kill my apps when working on backgrounding features. Device is loaded with so much memory that it will hardly ever have to kill anything.
Same thing on an iPod 4th.
Same values than on the ipad.
Why i never had a crash on my ipod could be due to two things:
- I hardly ever use safari on the ipod, screen is too small for my chubby fingers and I hate the constant scrolling to read a line
- safari mobile for ipod might also need much less ram due to the screen being smaller (memory ram) and usually getting mobile version of previous websites.
Anyway, what I see from this quick run is that the crashes are not due to any gremlins injecting a virus in your ipad or whatever, just that the ipad1 is borderline on physical specs when it comes to running ios5.
And could maybe explain why apple dropped the multitasking gestures on ipad1 in the first place.
This move sounds very un-Applish (releasing software that can barely run on a popular device), but once again, look at apple's history in the past few months.
iphone 4s delayed by a few months, potentially due to ios5.
BatteryGate on the 4s due to software issues.
iTunesMatch getting delayed by a few months (beta testers should have had 3 free months, turns out they get nothing because the service was in beta for 3 months with 4 wipeouts), and actually missing apple's own public deadline (end of october).
5.0.1 fixes the massive battery drain for some by turning it into a mild battery drain for all. My 4s gets warm by just sitting on my desk, on 3g, how can that happen?
5.1 changelog is almost empty. I know it's still in beta, but is that seriously supposed to be a dot release? Looks more like a massive bug fix release to me.
My guess is apple has had a hard time getting ios5 out the door, shipped it too early due to physical devices produced and waiting to be sold, that had to be out some time before christmas.
Not blaming anybody, I write mobile software for I living and know what this kind of problems look like, and I can't get close to imagining how it is for the iOS team seeing how the mobile space is experiencing revolution over revolution every 6 months.
I really hope 5.1 will at least partially address this safari crash issue, it's getting old. I'm certainy not going for an ipad2 when the 3/HD/whatever is predicted to be launched in 4 months.