University of Michigan
Graduate research lab on mobile performance
Mostly focused on Android on fast networks
But a lot of findings apply...
Full stack impact:
Dropped requests
Non-functional apps
Waste of user's money
Battery quickdeath
Load on base station
Very unhappy users
Very unhappy operators
Not new problems
Tons of research in the field
Little being applied on the Web
Huge wins possible
Radio chips: high/low power
Radio Resource Controls (RRC) timers
High power mode stays on after activity
wasted power: "tail energy"
Tell chip that we're done
Little/no access via chipset vendors
Can infer via power measurement
But variable per chipset/network
Even so, problematic to have that access
"Yo, I'm done."
Proactive: piggybacking
Last network access timestamp?
"now is good" events?
Projections
Scheduling
XHR option to defer?
Local passive measurement of cellular load
Complex, requires low-level radio access
Could measure requests on ongoing basis?
Still requires high-level positive patterns
Bars don't tell the whole story
Strong link != low latency
Weak link != high latency
Neither signal throughput
Bandwith quotes from provider are wrong
"if (fast) then..." not granular enough
TMI
Keep it simple for devs
Tail energy, weak signal, high latency
App developers shouldn't have to care
Positive patterns for built-in awareness
Education isn't enough
Experiment
Helper library
Surveys network conditions
Throughout the day
Predict opportunity windows
Multipath TCP
QUIC
Traffic pre-caching
https://wiki.mozilla.org/FirefoxOS/Research