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>Inheritance
Section titled “Inheritance”Object → SizeDiffNode
Implements
Section titled “Implements”Constructors
Section titled “Constructors”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)Properties
Section titled “Properties”Children
Section titled “Children”Child nodes ordered by absolute delta, largest first.
Returns: IReadOnlyList<SizeDiffNode>
public IReadOnlyList<SizeDiffNode> Children { get; init; }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; }FullPath
Section titled “FullPath”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; }LeftEntryCount
Section titled “LeftEntryCount”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; }LeftNodeNames
Section titled “LeftNodeNames”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; }LeftSize
Section titled “LeftSize”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; }RightEntryCount
Section titled “RightEntryCount”The number of raw comparison-side report rows behind this node.
Returns: Int32
public int RightEntryCount { get; init; }RightNodeNames
Section titled “RightNodeNames”Every dependency-graph node name behind the comparison-side rows.
Returns: IReadOnlyList<String>
public IReadOnlyList<string> RightNodeNames { get; init; }RightSize
Section titled “RightSize”The bytes attributed on the comparison side (changed entries only for interior nodes).
Returns: Int64
public long RightSize { get; init; }