Patrick Walton
a8e35fbeac
layout: Use the concurrent hash map for the leaf sets.
...
64% improvement in style recalc.
2014-01-30 15:11:35 -08:00
bors-servo
34746359f0
auto merge of #1590 : pcwalton/servo/thread-safe-flow-construction, r=metajack
...
non-element children during the cascade.
Fetching them from the parent isn't thread-safe.
r? @metajack
2014-01-30 14:04:18 -08:00
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
0e20ec02c5
layout: Make box building thread safe by pushing down styles into
...
non-element children during the cascade.
Fetching them from the parent isn't thread-safe.
Adds a test for anonymous block box inheritance.
2014-01-30 13:09:01 -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