Bug 1845130 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Of the entire measured time on Speedometer 3, a full percent is spent in `core::ptr::drop_in_place(style::gecko_bindings::structs::root::mozilla::ComputedStyle*)`: https://share.firefox.dev/3O3ikGG

We're freeing all the component objects (e.g. `nsStyleText`) one-by-one.

Is there a reason why these "components" are separate heap allocations? Could we place them inline into `ServoComputedValues`?

(Making sp3 overall faster by 1% is equivalent to making a single subtest faster by 23%.)
Of the entire measured time on Speedometer 3, a full percent is spent in `core::ptr::drop_in_place(style::gecko_bindings::structs::root::mozilla::ComputedStyle*)`: https://share.firefox.dev/3O3ikGG

We're freeing all the component objects (e.g. `nsStyleText`) one-by-one.

Is there a reason why these "components" are separate heap allocations? Could we place them inline into `ServoComputedValues`?

(Making sp3 overall faster by 1% is equivalent to making a single subtest faster by 23%.)

---

Here are profiles of layout+style object destruction on TodoMVC-WebComponents:

Firefox: https://share.firefox.dev/4hkEGkO (2427 samples)
Chrome: https://share.firefox.dev/4dOoMfp (819 samples, 3x faster)

Making Firefox as fast as Chrome on destroying layout+style objects would make TodoMVC-WebComponents faster by 4.5%, affects most subtests, and would make overall sp3 faster by 1.4%. (updated 2024-10-17).

Back to Bug 1845130 Comment 0