Commit graph

7 commits

Author SHA1 Message Date
Patrick Walton
94ab4f5086 layout: Perform aux initialization in parallel.
Brings aux initialization time down to essentially zero (!)
2014-01-30 13:13:56 -08:00
Patrick Walton
e94b3d140c update per comment 2014-01-30 12:07:35 -08:00
Patrick Walton
b27f4a8969 layout: Introduce a DOM leaf set as a prerequisite for parallel flow
construction.

This will be very slow until we have the concurrent hash table, but we
might as well get it in.
2014-01-29 21:05:50 -08:00
Patrick Walton
9c3af574e5 layout: Perform cascading in parallel.
Speeds up the cascade by 3x.
2014-01-27 14:41:52 -08:00
Patrick Walton
cb2e225b14 layout: Switch parallel selector matching over to using work stealing.
10% speedup over what we had before.
2014-01-27 12:44:54 -08:00
Patrick Walton
18a2050a64 layout: Port parallel layout over to a generic "work queue"
infrastructure.

The work queue accepts abstract generic "work units", which in this case
are layout operations. The same speedups have been observed.
2014-01-24 20:50:30 -08:00
Patrick Walton
54f0f17f83 layout: Implement parallel reflow for the bubble-widths and
assign-heights phases.

This uses the new work-stealing deque. By default, 3/4 of a thread per
logical CPU is used. This can be tuned with the `-y` flag.

I measured a 65% reflow speedup on `perf-rainbow.html` and a 247% reflow
speedup on `http://en.wikipedia.org/wiki/South_China_Sea` on a 4-core
HyperThreaded Core i7. However, numbers were fairly volatile, especially
for the latter.
2014-01-22 15:59:21 -08:00