Skip to main content

MemoryNode

pub struct MemoryNode {
    pub id: Option<u64>,
    pub absolute_name: Option<String>,
    pub weak: Option<bool>,
    pub size_bytes: Option<u64>,
    pub entries: Vec<MemoryNodeEntry>,
}
Expand description

Memory dumps are represented as a graph of memory nodes which contain statistics. To avoid double counting the same memory across different nodes, edges are used to mark nodes that account for the same memory. See this doc for examples of the usage: https://docs.google.com/document/d/1WGQRJ1sjJrfVkNcgPVY6frm64UqPc94tsxUOXImZUZI

A single node in the memory graph.

Fields§

§id: Option<u64>

Unique ID of the node across all processes involved in the global memory dump. The ID is only unique within this particular global dump identified by GlobalMemoryDumpPacket.global_dump_id.

§absolute_name: Option<String>

Absolute name is a unique name for the memory node within the process with ProcessMemoryDump.pid. The name can contain multiple parts separated by ‘/’, which traces the edges of the node from the root node. Eg: “partition_allocator/array_buffers/buffer1” refers to the child node “buffer1” in a graph structure of: root -> partition_allocator -> array_buffers -> buffer1.

§weak: Option<bool>

A weak node means that the instrumentation that added the current node is unsure about the existence of the actual memory. Unless a “strong” (non-weak is default) node that has an edge to the current node exists in the current global dump, the current node will be discarded.

§size_bytes: Option<u64>

Size of the node in bytes, used to compute the effective size of the nodes without double counting.

§entries: Vec<MemoryNodeEntry>

Implementations§

Source§

impl MemoryNode

Source

pub fn id(&self) -> u64

Returns the value of id, or the default value if id is unset.

Source

pub fn absolute_name(&self) -> &str

Returns the value of absolute_name, or the default value if absolute_name is unset.

Source

pub fn weak(&self) -> bool

Returns the value of weak, or the default value if weak is unset.

Source

pub fn size_bytes(&self) -> u64

Returns the value of size_bytes, or the default value if size_bytes is unset.

Trait Implementations§

Source§

impl Clone for MemoryNode

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MemoryNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MemoryNode

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for MemoryNode

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8> ⓘ
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘ
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for MemoryNode

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MemoryNode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.