pub struct MemoryReport {Show 18 fields
pub live_node_count: usize,
pub live_relationship_count: usize,
pub node_tombstone_count: usize,
pub relationship_tombstone_count: usize,
pub nodes_bytes: usize,
pub relationships_bytes: usize,
pub outgoing_bytes: usize,
pub incoming_bytes: usize,
pub label_index_bytes: usize,
pub type_index_bytes: usize,
pub property_index_bytes: usize,
pub sorted_index_bytes: usize,
pub text_index_bytes: usize,
pub point_index_bytes: usize,
pub fulltext_index_bytes: usize,
pub vector_index_bytes: usize,
pub index_catalog_bytes: usize,
pub constraint_catalog_bytes: usize,
}Expand description
Aggregated retained-heap breakdown of an [InMemoryGraph].
All fields are in bytes. usize was chosen over u64 so call
sites can use cargo bench reports and pretty-print without casts;
on 32-bit hosts a graph that overflowed this would already have
failed earlier.
Fields§
§live_node_count: usize§live_relationship_count: usize§node_tombstone_count: usize§relationship_tombstone_count: usize§nodes_bytes: usizenodes: Vec<Option<Arc<NodeRecord>>> — slot vector plus the
Arc headers plus deep payload of each live record (labels,
properties — see property_value_heap_bytes).
relationships_bytes: usizerelationships: Vec<Option<Arc<RelationshipRecord>>>.
outgoing_bytes: usizeoutgoing: Vec<Vec<RelationshipId>> — outer Vec capacity plus
the sum of each inner Vec’s capacity in bytes.
incoming_bytes: usizeSame for incoming.
label_index_bytes: usizenodes_by_label: BTreeMap<String, ChunkedVec<NodeId>>.
type_index_bytes: usizerelationships_by_type: BTreeMap<String, ChunkedVec<RelationshipId>>.
property_index_bytes: usizeHash-bucket property registry (find_*_by_property).
sorted_index_bytes: usizeSorted-range property index (RANGE catalog entries).
text_index_bytes: usizeTrigram TEXT indexes.
point_index_bytes: usizeSpatial grid POINT indexes.
fulltext_index_bytes: usizeFULLTEXT inverted indexes.
vector_index_bytes: usizeVECTOR indexes (Flat and HNSW backends).
index_catalog_bytes: usize§constraint_catalog_bytes: usizeImplementations§
Source§impl MemoryReport
impl MemoryReport
Sourcepub fn graph_core_bytes(&self) -> usize
pub fn graph_core_bytes(&self) -> usize
Bytes attributable to the core graph shape: slabs, adjacency, and the label/type indexes. This is the floor every workload pays regardless of which secondary indexes are installed.
Sourcepub fn secondary_index_bytes(&self) -> usize
pub fn secondary_index_bytes(&self) -> usize
Bytes attributable to secondary indexes — the amount that would be reclaimed by dropping every index.
pub fn catalog_bytes(&self) -> usize
pub fn total_bytes(&self) -> usize
Sourcepub fn bytes_per_live_node(&self) -> f64
pub fn bytes_per_live_node(&self) -> f64
Average retained bytes per live node, including its share of the slab tombstone overhead. Returns 0 when there are no nodes.
pub fn bytes_per_live_relationship(&self) -> f64
Trait Implementations§
Source§impl Clone for MemoryReport
impl Clone for MemoryReport
Source§fn clone(&self) -> MemoryReport
fn clone(&self) -> MemoryReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MemoryReport
impl Debug for MemoryReport
Source§impl Default for MemoryReport
impl Default for MemoryReport
Source§fn default() -> MemoryReport
fn default() -> MemoryReport
Source§impl<'de> Deserialize<'de> for MemoryReport
impl<'de> Deserialize<'de> for MemoryReport
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MemoryReport, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MemoryReport, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MemoryReport
impl PartialEq for MemoryReport
Source§impl Serialize for MemoryReport
impl Serialize for MemoryReport
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for MemoryReport
Auto Trait Implementations§
impl Freeze for MemoryReport
impl RefUnwindSafe for MemoryReport
impl Send for MemoryReport
impl Sync for MemoryReport
impl Unpin for MemoryReport
impl UnsafeUnpin for MemoryReport
impl UnwindSafe for MemoryReport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more