4 ms·
This has been repeatedly invalidated over and over and over again, and I'm really tired of being brought up as the excuse. First, you can simply prove that's n
by gecko 14y ago
This has been repeatedly invalidated over and over and over again, and I'm really tired of being brought up as the excuse.
First, you can simply prove that's not right empirically: start loading a large page, slap down your finger, scroll around for awhile, notice that the rendering has halted (which seems to confirm what you're saying), and then release your finger, to witness the page snap to 100% completeness. Why? Because things were indeed continuing in the background; the only thing that "blocked" is that the OpenGL canvas you're dragging around doesn't get swapped while you're scrolling.
Here's what's actually happening: iOS makes it absurdly easy to do computations on background threads. Android doesn't. iOS makes it very easy to offload a lot of processing to the GPU. Android doesn't. The difficulty means that many apps end up doing computation and actual rendering on the UI thread, which, surprise, makes for a jerky experience, whereas most iOS apps do the computation on a different thread than they do their rendering. Throw in that Dalvik's GC is beyond horrible and you've got everything you need for a nice and jittery UI experience.
Note that Android absolutely allows you to do background processing, GPU-heavy rendering; it's just harder. You can even avod the GC by carefully reusing objects in fast-render loops. In fact, our Android Trello dev either just released or is about to release an update to the Android app that makes it scroll smooth as silk by doing all of the above. But it requires a lot more effort to get to the same place, which is why "all" iOS apps perform better than Android ones.
- cheald 14y agoI must be doing something different, because performing your exact test doesn't have the results you describe. I just opened a CNET article on my latest-gen iPod Touch running iOS 6. When the page was half-loaded (header loaded in, no content yet), I placed my finger on the page and dragged it a couple pixels. I left it there for 30 seconds - nothing on the page changed during this time - then removed my finger. I then very clearly watched the story header image progressively download, and it took several more seconds for the page to become fully rendered.