![]() In the 3 charts below, "window draw" has 3 major subroutines. Request layout, where we walk over the tree and have everything talk to the layout engine initially. Compute layout, where we have the layout engine actually do the layout, and then paint, where we use the computed bounds to populate the scene.  Things are moving quickly so before/after comparisons are tough. In the graph above, green bars are from a commit actually pre-dates a merge of master which increased the complexity of layout. The red bars represent the state of the world after this PR. Note how we improve the performance of `paint`. Improvements: - Not moving `self` in `Element::paint`. This was moving from the heap to the stack and imposing a big cost. This is the biggest win in this PR. - We got some minor wins by making the stacking order a bigger smallvec of u8 instead of u32. - A big win that doesn't show up in this chart is avoiding a double render of the editor when autoscrolling by never pushing notification effects or marking the window dirty when notifying during a window draw. Release Notes: - N/A |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |