  Web applications are gradually shifting toward resource-constrained mobile
devices. As a result, the Web runtime system must simultaneously address two
challenges: responsiveness and energy-efficiency. Conventional Web runtime
systems fall short due to their reactive nature: they react to a user event
only after it is triggered. The reactive strategy leads to local optimizations
that schedule event executions one at a time, missing global optimization
opportunities. This paper proposes Proactive Event Scheduling (PES). The key
idea of PES is to proactively anticipate future events and thereby globally
coordinate scheduling decisions across events. Specifically, PES predicts
events that are likely to happen in the near future using a combination of
statistical inference and application code analysis. PES then speculatively
executes future events ahead of time in a way that satisfies the QoS
constraints of all the events while minimizing the global energy consumption.
Fundamentally, PES unlocks more optimization opportunities by enlarging the
scheduling window, which enables coordination across both outstanding events
and predicted events. Hardware measurements show that PES reduces the QoS
violation and energy consumption by 61.2% and 26.5%, respectively, over the
Android default Interactive CPU governor. It also reduces the QoS violation and
energy consumption by 63.1% and 17.9%, respectively, compared to EBS, a
state-of-the-art reactive scheduler.
