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%.)
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%.) --- 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).