mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
layout: Report memory usage for fragment and box trees. (#36553)
Add memory reporter integration for the fragment and box trees that are persisted in the layout thread. Testing: Looked at the numbers for https://servo.org and https://html.spec.whatwg.org/. The former was very small, but the latter was 700mb. --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
add8c51f47
commit
c787688afc
33 changed files with 230 additions and 69 deletions
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use app_units::Au;
|
||||
use malloc_size_of_derive::MallocSizeOf;
|
||||
use servo_arc::Arc;
|
||||
use style::properties::ComputedValues;
|
||||
use style::selector_parser::PseudoElement;
|
||||
|
@ -27,13 +28,13 @@ use crate::{
|
|||
};
|
||||
|
||||
/// <https://drafts.csswg.org/css-display/#independent-formatting-context>
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, MallocSizeOf)]
|
||||
pub(crate) struct IndependentFormattingContext {
|
||||
pub base: LayoutBoxBase,
|
||||
pub contents: IndependentFormattingContextContents,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, MallocSizeOf)]
|
||||
pub(crate) enum IndependentFormattingContextContents {
|
||||
NonReplaced(IndependentNonReplacedContents),
|
||||
Replaced(ReplacedContents),
|
||||
|
@ -41,7 +42,7 @@ pub(crate) enum IndependentFormattingContextContents {
|
|||
|
||||
// Private so that code outside of this module cannot match variants.
|
||||
// It should got through methods instead.
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, MallocSizeOf)]
|
||||
pub(crate) enum IndependentNonReplacedContents {
|
||||
Flow(BlockFormattingContext),
|
||||
Flex(FlexContainer),
|
||||
|
@ -52,7 +53,7 @@ pub(crate) enum IndependentNonReplacedContents {
|
|||
|
||||
/// The baselines of a layout or a [`crate::fragment_tree::BoxFragment`]. Some layout
|
||||
/// uses the first and some layout uses the last.
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
#[derive(Clone, Copy, Debug, Default, MallocSizeOf)]
|
||||
pub(crate) struct Baselines {
|
||||
pub first: Option<Au>,
|
||||
pub last: Option<Au>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue