Mike, The whole issue is that the Sync and IM services are specifically what cause lag in games. If a user wants a smooth gaming experience, something's gotta go - or it's gotta be squashed way down so that it can't use much of the CPU.
I'm not saying I know what should stay and what should go. I don't. I just know what causes the issue and what would work to provide a good experience at the cost of flipping the phone effectively into airplane mode but with the ability to receive calls. On Apr 19, 7:07 pm, mike <[email protected]> wrote: > On 04/19/2010 04:56 PM, Robert Green wrote: > > > Bob, > > > The idea is that an exclusive mode would cater to apps that are never > > idle. Games are never idle. They constantly update and draw. There > > are other apps that work that way as well and having a more guaranteed > > consistent amount of CPU available for those simulations would > > probably be very favorable with consumers. I know I'd personally say > > "Yes" if a game prompted me to go into an optional game mode during > > the duration of play. If you're playing a game, you don't need > > background tasks running. All you would need is to receive a phone > > call. It is still a phone, after all. :) > > I get off the bus right here. At the point that you aren't willing > to say that it's not a phone while you're playing a game or whatever > this mode is, you're setting yourself up for failure. Why not an IM > from your boss wondering if you're working or playing game? What > about that alert that comes in from the baby cam that says that > the loinfruit is unhappy? > > The problem here is that you are presuming to know users' prioritiztion > of alerting, etc, based solely on tradition. That is bound to fail and > fail and fail as the generations who think of it as being "a phone afterall" > dwindle and eventually die out. It isn't a phone. It's a general purpose > computer with some telephony functions on it. > > So if there is going to be some mode that allows you to drown out > *every* other bit of background/alerting that's one thing. But if you're > going to start making exceptions -- which I think you must -- you've > opened up a much larger problem. > > Mike > > > > > > > If the user is expecting an > > email/text/other notification, they could opt not to go into game mode > > and the game will have its normal bits of choppiness. It really could > > be as simple as that. > > > After the exclusive mode is exited, paused services are resumed and > > all is happy on the device. > > > On Apr 19, 6:28 pm, Bob Kerns<[email protected]> wrote: > > >> Well, after looking at your code, my suggestion for advice would be: > > >> "Do no evil!" :=) > > >> When I implemented something like this on Symbolics Lisp Machines back > >> in the 1980's, I made the scheduling boost for UI actions be for a > >> limited period of time. Perhaps something like that is going on here? > > >> I did this, because I found that there would occasionally be some bit > >> of code or other that would do something in a UI thread (typically the > >> mouse-handling thread) that would consume however much CPU was > >> available, while waiting for the INTERESTING things to do to be > >> computed by another thread. And an unlimited priority boost in the UI > >> could tend to make the UI very difficult to debug, as well. > > >> So I had a macro that could be wrapped around various components of UI > >> code, that would boost the priority of the UI thread. It would boost > >> it for a maximum period of time, after which it would fall back to > >> normal. > > >> It would ALSO boost it for a *minimum* period of time. The idea being > >> that if you'd just done user interaction, then perhaps completing the > >> work implied by that interaction would also be of interest to the > >> user. The equivalent here would be to boost priority for any incoming > >> events on the main thread, up through some number of scheduler quanta. > > >> This all worked very well, but wasn't a panacea. The real fix was > >> usually to write the application better. > > >> Another factor to figure in here is scheduling quanta. When the > >> foreground "breaths", it allows the background to run. There will > >> always be a minimum amount of time the scheduler will allocate to run > >> anything it does decide to run. Otherwise, you'd waste too much time > >> switching back and forth! > > >> Anyway, I do agree with Robert Green that giving the scheduler > >> explicit information to aid it in policy decisions would be a good > >> thing. You still have to consider how to handle 'exclusive mode" -- do > >> you shut out non-foreground tasks entirely, even when the foreground > >> is idle? Because you may then be blocking the foreground for a > >> scheduling quantum? > > >> On Apr 19, 3:32 pm, Mark Murphy<[email protected]> wrote: > > >>> We were told that, as of Android 1.6, background processes were put in a > >>> Linux process scheduling class that limited how much CPU they would use. > >>> A few weeks ago, I ran a benchmark test that seemed to validate this > >>> claim. > > >>> I have run more tests, and I am no longer confident in my earlier > >>> conclusion. I can get a background process to significantly impact the > >>> foreground process, more than would seem to be possible if the > >>> background process was, indeed, CPU-limited. > > >>> Details, including sample code, can be found in the issue I opened that > >>> was promptly closed: > > >>>http://code.google.com/p/android/issues/detail?id=7844 > > >>> Clearly, the failed issue was my fault, for not running around screaming > >>> about bugs in Android and not jumping to conclusions. > > >>> Anyway, if anyone else has any ideas on how we can prove whether > >>> background processes are CPU-limited -- and if so, how come that's not > >>> helping much -- please respond to this thread or shoot me an email > >>> off-list if you prefer. > > >>> And, I apologize to anyone who took my prior advice regarding this CPU > >>> utilization, as it looks like I screwed up big-time on that analysis. > > >>> -- > >>> Mark Murphy (a Commons > >>> Guy)http://commonsware.com|http://twitter.com/commonsguy > > >>> -- > >>> You received this message because you are subscribed to the Google > >>> Groups "Android Developers" group. > >>> To post to this group, send email to [email protected] > >>> To unsubscribe from this group, send email to > >>> [email protected] > >>> For more options, visit this group > >>> athttp://groups.google.com/group/android-developers?hl=en > > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Android Developers" group. > >> To post to this group, send email to [email protected] > >> To unsubscribe from this group, send email to > >> [email protected] > >> For more options, visit this group > >> athttp://groups.google.com/group/android-developers?hl=en > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group > athttp://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

