[8125, K-JAM, P4300, MDA Vario General] GliTCH82:
Well jayjay brings up an interesting point. If you receive at least one message every 5 minutes, and I would assume that some folks get even more than that, then pushing would be just about as intensive as polling. However it's a bit of a gamble, I would assume that unless you're getting frequent spam that even the busiest of professionals could go for brief periods where they aren't receiving e-mail, in which case a poll would be an unneccessary waste of battery life, not to mention data usage. However as your mail volume increases it's rather obvious that no matter what system you use you're still going to be draining the battery quite frequently, so the advantage of pushing over polling with respect to battery life and data usage would diminish.

Given that scenario, one advantage to pushing would be receiving e-mail instantaneously as opposed to every 5 minutes, and that for some could be a deciding factor. Polling for messages every minute would not be as fast as pushing, which could thereotically deliver multiple messages within the time span of one minute. Under such intensive e-mail use, your battery would drain faster and you would consume more data than polling because every time you receive a message the system initiates authentication with the mail server. Polling would consume less because authentication is performed once for multiple message delivery.

Here's a couple of scenarios to illustrate the point. Both scenarios assume the same user in two parallel universes. In the first universe he's using DP with exchange and in the second he's using a 5 minute polling interval with a POP3 server. Please excuse my crude time estimates and details.

LEGEND:

"*" indicates a heavy tax on the device's battery/data in the form of data being used to authenticate your username and password for your email account.

"#" indicates an even heavier tax on the device's battery/data in the form of data being used to receive e-mail messages from the e-mail server.

Scenario 1 using pushing:

00:00:01 --> 1 email message received by Exchange server

00:00:03 --> Device alerted to new email

*00:00:04 --> Device authenticates with Exchange

#00:00:06 --> 1 email message delivered

00:05:05 --> Ping sent to Exchange by device

00:10:05 --> Ping sent to Exchange by device

00:15:05 --> Ping sent to Exchange by device

00:17:15 --> 1 email message received by Exchange server

00:17:17 --> Device alerted to new email

*00:17:18 --> Device authenticates with Exchange

#00:17:20 --> 1 email message delivered

This is where push helps with battery life and data usage. When your e-mail usage is low, push only sends a ping every 5 minutes to keep the TCP listener socket open as opposed to a constant authentication every 5 minutes to check if new mail has arrived, as in scenario 2.

Scenario 2 using polling:

00:00:01 --> 1 email message received by POP3 server

*00:02:00 --> Device authenticates with POP3

#00:02:02 --> 1 email message delivered

*00:07:02 --> Device authenticates with POP3

00:07:03 --> No e-mail messages delivered

*00:12:03 --> Device authenticates with POP3

00:12:04 --> No e-mail messages delivered

*00:17:04 --> Device authenticates with POP3

00:17:05 --> No e-mail messages delivered

00:17:15 --> 1 email message received by POP3 server

*00:22:05 --> Device authenticates with POP3

#00:22:07 --> 1 email message delivered

Under this scenario, the device is wasting precious battery life by blindly checking every 5 minutes to see if you have new e-mail. Unless you do then you're wasting your battery unnecessarily.

The next two scenarios assume heavy e-mail usage.

Scenario 3 using pushing:

00:00:01 --> 1 email message received by Exchange server

00:00:03 --> Device alerted to new email

*00:00:04 --> Device authenticates with Exchange

#00:00:06 --> 1 email message delivered

00:02:15 --> 1 email message received by Exchange server

00:02:17 --> Device alerted to new email

*00:02:18 --> Device authenticates with Exchange

#00:02:20 --> 1 email message delivered

00:03:01 --> 1 email message received by Exchange server

00:03:03 --> Device alerted to new email

*00:03:04 --> Device authenticates with Exchange

#00:03:06 --> 1 email message delivered

00:04:15 --> 1 email message received by Exchange server

00:04:17 --> Device alerted to new email

*00:04:18 --> Device authenticates with Exchange

#00:04:20 --> 1 email message delivered

This assumes heavy usage with push. Your device is now authenticating multiple times for each message you get. Upside is, you get your e-mail quicker. Downside is, every time you authenticate and receive a message you're using up battery and data.

The last scenario assumes the exact same e-mail usage with polling at 5 minute intervals.

Scenario 4 using polling:

00:00:01 --> 1 email message received by POP3 server

00:02:15 --> 1 email message received by POP3 server

00:03:01 --> 1 email message received by POP3 server

00:04:15 --> 1 email message received by POP3 server

*00:05:00 --> Device authenticates with POP3

####00:05:08 --> 4 email message delivered

So if you're a heavy e-mail user and use polling, you can conserve battery and data at the expense of not receiving your e-mail immediately. You can use pushing to receive e-mail immediately at the expense of battery life and data usage.

If you're a light e-mail user and use polling, you're wasting your battery life, data, and getting your messages at a possible 5 minute delay.

But the point is, if you're a light e-mail user (like me) and you use pushing, you can have your cake and eat it too.

Now, if we stick some real numbers in there maybe someone can do the math to figure out at what point exactly pushing becomes more intensive than polling. ;)