Skip to content

MstatSizeEntry

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

One normalized entry of an MstatSizeIndex: raw report rows aggregated under a build-stable identity key, with the structured hierarchy fields a consumer needs to place the entry in an assembly → namespace → type → leaf tree without parsing display strings.

public sealed record MstatSizeEntry : IEquatable<MstatSizeEntry>

ObjectMstatSizeEntry

MstatSizeEntry(MstatSectionKind, string, string, string, string, string, string, string, long, int, IReadOnlyList<string>)

Section titled “MstatSizeEntry(MstatSectionKind, string, string, string, string, string, string, string, long, int, IReadOnlyList<string>)”

One normalized entry of an MstatSizeIndex: raw report rows aggregated under a build-stable identity key, with the structured hierarchy fields a consumer needs to place the entry in an assembly → namespace → type → leaf tree without parsing display strings.

Parameters:

  • Section (MstatSectionKind): The report section the entry came from.
  • Key (String): The build-stable identity key the entry’s rows were aggregated under. Keys are comparable across two builds of the same application; they are not display strings.
  • AssemblyName (String): The assembly the bytes are attributed to. For frozen objects this is the owning type’s assembly — the code that caused the bytes — or UnattributedName when the object has no owner (string literals). Empty for global sections (blobs).
  • Namespace (String): The namespace the bytes are attributed to, an empty string for the global namespace, or UnattributedName for ownerless frozen objects. Blobs and resources carry no namespace.
  • TypeName (String): The type-level grouping name (declaring type for methods, the type itself for MethodTables, the owning type for owned frozen objects), or an empty string for sections without one.
  • LeafName (String): The leaf display name, disambiguated where identity requires it (method names carry their parameter list).
  • DisplayName (String): The undecorated display name (a method’s bare name, a blob’s name).
  • FullPath (String): A deterministic, key-derived path for the entry, unique within the index.
  • Size (Int64): The aggregated size in bytes.
  • EntryCount (Int32): The number of raw report rows folded into this entry. Greater than one means the entry is an aggregate (overload display collisions, folded MethodTables, frozen objects grouped by owner) and consumers must present it as such.
  • NodeNames (IReadOnlyList<String>): Every dependency-graph node name behind the aggregated rows, in row order. These join to DGML node labels and to native symbol names; an aggregate maps to as many nodes as it has rows with names.
public MstatSizeEntry(MstatSectionKind Section, string Key, string AssemblyName, string Namespace, string TypeName, string LeafName, string DisplayName, string FullPath, long Size, int EntryCount, IReadOnlyList<string> NodeNames)

The assembly the bytes are attributed to. For frozen objects this is the owning type’s assembly — the code that caused the bytes — or UnattributedName when the object has no owner (string literals). Empty for global sections (blobs).

Returns: String

public string AssemblyName { get; init; }

The undecorated display name (a method’s bare name, a blob’s name).

Returns: String

public string DisplayName { get; init; }

The number of raw report rows folded into this entry. Greater than one means the entry is an aggregate (overload display collisions, folded MethodTables, frozen objects grouped by owner) and consumers must present it as such.

Returns: Int32

public int EntryCount { get; init; }

A deterministic, key-derived path for the entry, unique within the index.

Returns: String

public string FullPath { get; init; }

The build-stable identity key the entry’s rows were aggregated under. Keys are comparable across two builds of the same application; they are not display strings.

Returns: String

public string Key { get; init; }

The leaf display name, disambiguated where identity requires it (method names carry their parameter list).

Returns: String

public string LeafName { get; init; }

The namespace the bytes are attributed to, an empty string for the global namespace, or UnattributedName for ownerless frozen objects. Blobs and resources carry no namespace.

Returns: String

public string Namespace { get; init; }

Every dependency-graph node name behind the aggregated rows, in row order. These join to DGML node labels and to native symbol names; an aggregate maps to as many nodes as it has rows with names.

Returns: IReadOnlyList<String>

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

The report section the entry came from.

Returns: MstatSectionKind

public MstatSectionKind Section { get; init; }

The aggregated size in bytes.

Returns: Int64

public long Size { get; init; }

The type-level grouping name (declaring type for methods, the type itself for MethodTables, the owning type for owned frozen objects), or an empty string for sections without one.

Returns: String

public string TypeName { get; init; }