Timo Sirainen wrote:
On Tue, 2009-10-13 at 21:38 +0100, Ed W wrote:
Something I had been pondering recently (I started using a cell phone with imap idle support), was a previous poster mentioning the huge increase in battery life from turning off the radio for as long as possible. It appears that just turning on the radio (wifi or 3G) consumes much more energy than the transmitting of a few bytes of data after it's on. In particular synchronising certain types of infrequent transmissions may have a dramatic increase in battery life for mobile devices - I'm thinking mainly of the NOOPs when the connection is idling
Is this something that could be implemented with the current architecture? Are there other types of application where synchronising "stuff" happening to multiple connections from the same client could be helpful?
No matter how many times I read the above, I've no idea what you're trying to ask. :) This seems like entirely a client-dependent issue and Dovecot can't much alter clients' behavior. Unless you're talking about running Dovecot on a cell phone?..
Perhaps I misunderstand, but doesn't dovecot send a "keepalive" on connections which are idling? It's been discussed on the list previously, google turns up this (not from the list, but related): http://doubleukay.com/node/12
I hadn't previously twigged for example that the real reason using my old Nokia N95 as a wifi SIP phone was caning the battery could have been the short re-registration interval as much as actually having the phone on wifi. I now have an N97 and the buggers disabled the SIP phone bit, but there is some hope it will be re-enabled on the next firmware update
- I was planning to do a bit of research on this if so.
The point being that for wireless users there is a massive "cost" to turn on the radio and transmit any data, the actual transmission of incremental data after that is cheap. So applications and servers which may operate over wireless networks can massively increase battery life if they give some thought to significantly "batching up" network traffic
I can imagine that in the case of a typical cell phone with say 3 email accounts, there will be likely three idle connections (or more) to dovecot and each will end up sending keepalive packets at slightly different intervals for each connection. By synchronising this network traffic you would potentially increase battery life by up to a factor of 3 (ie turn on the radio to send the keepalive for all connections in one go, rather than turning the radio on three times as often)... (I think perhaps that's optimistic, but you can see that quite large gains might be possible here)
Nokia make a rather neat battery optimisation tool which allows you to log power consumed very precisely (and hopefully to correlate it to what your app is doing) - I would like to find the time to break this out to have a closer peak at some of this stuff, but it remains on my todo list right now...
Cheers
Ed W