mirror of
https://github.com/servo/servo.git
synced 2025-09-27 15:20:09 +01:00
layout: Measure stacking context tree in layout thread memory report (#38762)
Measures the memory usage of the stacking context tree in the memory report of the layout thread by adding `MallocSizeOf` to `StackingContextTree` and all the types required for that. Also requires adding `MallocSizeOf` to some webrender types. Testing: Manually looked at about:memory <img width="636" height="241" alt="image" src="https://github.com/user-attachments/assets/6bf9d65a-0bf0-4a99-99b5-ddedba3269c1" /> Fixes: https://github.com/servo/servo/issues/38725 --------- Signed-off-by: Rahul Menon <menonrahul02@gmail.com>
This commit is contained in:
parent
634c1897cf
commit
9cd019403f
7 changed files with 53 additions and 23 deletions
|
@ -39,5 +39,6 @@ unicode-script = { workspace = true }
|
|||
url = { workspace = true }
|
||||
urlpattern = { workspace = true }
|
||||
uuid = { workspace = true }
|
||||
webrender = { workspace = true }
|
||||
webrender_api = { workspace = true }
|
||||
wr_malloc_size_of = { workspace = true }
|
||||
|
|
|
@ -643,6 +643,12 @@ impl<T: MallocSizeOf, U> MallocSizeOf for euclid::Point2D<T, U> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<T: MallocSizeOf, U> MallocSizeOf for euclid::Box2D<T, U> {
|
||||
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
|
||||
self.min.size_of(ops) + self.max.size_of(ops)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: MallocSizeOf, U> MallocSizeOf for euclid::Rect<T, U> {
|
||||
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
|
||||
self.origin.size_of(ops) + self.size.size_of(ops)
|
||||
|
@ -826,7 +832,9 @@ malloc_size_of_is_webrender_malloc_size_of!(webrender_api::BorderRadius);
|
|||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::BorderStyle);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::BoxShadowClipMode);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::ColorF);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::Epoch);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::ExtendMode);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::ExternalScrollId);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::FontKey);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::FontInstanceKey);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::GlyphInstance);
|
||||
|
@ -836,8 +844,14 @@ malloc_size_of_is_webrender_malloc_size_of!(webrender_api::ImageRendering);
|
|||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::LineStyle);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::MixBlendMode);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::NormalBorder);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::PipelineId);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::ReferenceFrameKind);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::RepeatMode);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::FontVariation);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::SpatialId);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::StickyOffsetBounds);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender_api::TransformStyle);
|
||||
malloc_size_of_is_webrender_malloc_size_of!(webrender::FastTransform<webrender_api::units::LayoutPixel,webrender_api::units::LayoutPixel>);
|
||||
|
||||
macro_rules! malloc_size_of_is_stylo_malloc_size_of(
|
||||
($($ty:ty),+) => (
|
||||
|
@ -892,6 +906,7 @@ malloc_size_of_is_stylo_malloc_size_of!(style::attr::AttrIdentifier);
|
|||
malloc_size_of_is_stylo_malloc_size_of!(style::attr::AttrValue);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::color::AbsoluteColor);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::computed_values::font_variant_caps::T);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::computed_values::text_decoration_style::T);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::dom::OpaqueNode);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::invalidation::element::restyle_hints::RestyleHint);
|
||||
malloc_size_of_is_stylo_malloc_size_of!(style::logical_geometry::WritingMode);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue