  Mozilla Research is developing Servo, a parallel web browser engine, to
exploit the benefits of parallelism and concurrency in the web rendering
pipeline. Parallelization results in improved performance for pinterest.com but
not for google.com. This is because the workload of a browser is dependent on
the web page it is rendering. In many cases, the overhead of creating,
deleting, and coordinating parallel work outweighs any of its benefits. In this
paper, we model the relationship between web page primitives and a web
browser's parallel performance using supervised learning. We discover a feature
space that is representative of the parallelism available in a web page and
characterize it using seven key features. Additionally, we consider energy
usage trade-offs for different levels of performance improvements using
automated labeling algorithms. Such a model allows us to predict the degree of
parallelism available in a web page and decide whether or not to render a web
page in parallel. This modeling is critical for improving the browser's
performance and minimizing its energy usage. We evaluate our model by using
Servo's layout stage as a case study. Experiments on a quad-core Intel Ivy
Bridge (i7-3615QM) laptop show that we can improve performance and energy usage
by up to 94.52% and 46.32% respectively on the 535 web pages considered in this
study. Looking forward, we identify opportunities to apply this model to other
stages of a browser's architecture as well as other performance- and
energy-critical devices.
