MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / estimated_memory_bytes

Method estimated_memory_bytes

nodedb-graph/src/csr/memory.rs:109–130  ·  view source on GitHub ↗

Estimated memory usage of the dense CSR in bytes. Used for SpillController utilization calculation.

(&self)

Source from the content-addressed store, hash-verified

107 ///
108 /// Used for SpillController utilization calculation.
109 pub fn estimated_memory_bytes(&self) -> usize {
110 let offsets = (self.out_offsets.len() + self.in_offsets.len()) * 4;
111 let targets = (self.out_targets.len() + self.in_targets.len()) * 4;
112 let labels = (self.out_labels.len() + self.in_labels.len()) * 2;
113 let weights = self.out_weights.as_ref().map_or(0, |w| w.len() * 8)
114 + self.in_weights.as_ref().map_or(0, |w| w.len() * 8);
115 let buffer: usize = self
116 .buffer_out
117 .iter()
118 .chain(self.buffer_in.iter())
119 .map(|b| b.len() * 6) // (u16 + u32) per entry
120 .sum();
121 let buffer_weights: usize = self
122 .buffer_out_weights
123 .iter()
124 .chain(self.buffer_in_weights.iter())
125 .map(|b| b.len() * 8)
126 .sum();
127 let interning = self.id_to_node.iter().map(|s| s.len() + 24).sum::<usize>()
128 + self.id_to_label.iter().map(|s| s.len() + 24).sum::<usize>();
129 offsets + targets + labels + weights + buffer + buffer_weights + interning
130 }
131}
132
133#[cfg(test)]

Callers 1

memory_estimationFunction · 0.45

Calls 4

sumMethod · 0.80
lenMethod · 0.45
as_refMethod · 0.45
iterMethod · 0.45

Tested by 1

memory_estimationFunction · 0.36