Skip to content

SizeDiffNode

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

A node in the hierarchical size-difference tree between two Native AOT builds. The tree contains changed subtrees only — added, removed, grown, and shrunk entries; unchanged mass is summarized in SizeDiffSummary instead of carried as zero-delta nodes.

public sealed record SizeDiffNode : IEquatable<SizeDiffNode>

ObjectSizeDiffNode

SizeDiffNode(string, string, SizeNodeKind, DiffKind, long, long, long, IReadOnlyList<SizeDiffNode>, int, int, IReadOnlyList<string>, IReadOnlyList<string>)

Section titled “SizeDiffNode(string, string, SizeNodeKind, DiffKind, long, long, long, IReadOnlyList<SizeDiffNode>, int, int, IReadOnlyList<string>, IReadOnlyList<string>)”

A node in the hierarchical size-difference tree between two Native AOT builds. The tree contains changed subtrees only — added, removed, grown, and shrunk entries; unchanged mass is summarized in SizeDiffSummary instead of carried as zero-delta nodes.

Parameters:

  • Name (String): Display name for this node. Method leaves carry their parameter list so overloads stay distinct.
  • FullPath (String): A deterministic path from the root, unique within the tree.
  • Kind (SizeNodeKind): The granularity level of this node, in SizeNode terms.
  • Diff (DiffKind): The direction of the difference: Added or Removed when the whole subtree exists on one side only, otherwise Changed — grown when Delta is positive, shrunk when negative.
  • LeftSize (Int64): The bytes attributed on the baseline side (changed entries only for interior nodes).
  • RightSize (Int64): The bytes attributed on the comparison side (changed entries only for interior nodes).
  • Delta (Int64): RightSize minus LeftSize.
  • Children (IReadOnlyList<SizeDiffNode>): Child nodes ordered by absolute delta, largest first.
  • LeftEntryCount (Int32): The number of raw baseline report rows behind this node. Greater than one on a leaf means the leaf is an aggregate (display collisions, frozen objects grouped by owner) and is rendered as such.
  • RightEntryCount (Int32): The number of raw comparison-side report rows behind this node.
  • LeftNodeNames (IReadOnlyList<String>): Every dependency-graph node name behind the baseline rows. An aggregate maps to many DGML nodes; keeping the full list keeps “why is this in my binary” answers honest.
  • RightNodeNames (IReadOnlyList<String>): Every dependency-graph node name behind the comparison-side rows.
public SizeDiffNode(string Name, string FullPath, SizeNodeKind Kind, DiffKind Diff, long LeftSize, long RightSize, long Delta, IReadOnlyList<SizeDiffNode> Children, int LeftEntryCount, int RightEntryCount, IReadOnlyList<string> LeftNodeNames, IReadOnlyList<string> RightNodeNames)

Child nodes ordered by absolute delta, largest first.

Returns: IReadOnlyList<SizeDiffNode>

public IReadOnlyList<SizeDiffNode> Children { get; init; }

RightSize minus LeftSize.

Returns: Int64

public long Delta { get; init; }

The direction of the difference: Added or Removed when the whole subtree exists on one side only, otherwise Changed — grown when Delta is positive, shrunk when negative.

Returns: DiffKind

public DiffKind Diff { get; init; }

A deterministic path from the root, unique within the tree.

Returns: String

public string FullPath { get; init; }

The granularity level of this node, in SizeNode terms.

Returns: SizeNodeKind

public SizeNodeKind Kind { get; init; }

The number of raw baseline report rows behind this node. Greater than one on a leaf means the leaf is an aggregate (display collisions, frozen objects grouped by owner) and is rendered as such.

Returns: Int32

public int LeftEntryCount { get; init; }

Every dependency-graph node name behind the baseline rows. An aggregate maps to many DGML nodes; keeping the full list keeps “why is this in my binary” answers honest.

Returns: IReadOnlyList<String>

public IReadOnlyList<string> LeftNodeNames { get; init; }

The bytes attributed on the baseline side (changed entries only for interior nodes).

Returns: Int64

public long LeftSize { get; init; }

Display name for this node. Method leaves carry their parameter list so overloads stay distinct.

Returns: String

public string Name { get; init; }

The number of raw comparison-side report rows behind this node.

Returns: Int32

public int RightEntryCount { get; init; }

Every dependency-graph node name behind the comparison-side rows.

Returns: IReadOnlyList<String>

public IReadOnlyList<string> RightNodeNames { get; init; }

The bytes attributed on the comparison side (changed entries only for interior nodes).

Returns: Int64

public long RightSize { get; init; }