pub struct StatsPercentageChange {Show 24 fields
pub num_nodes_pct: f64,
pub num_leaves_pct: f64,
pub num_internal_nodes_pct: f64,
pub tree_height_pct: f64,
pub total_key_value_pairs_pct: f64,
pub total_tree_size_bytes_pct: f64,
pub avg_node_size_bytes_pct: f64,
pub min_node_size_bytes_pct: f64,
pub max_node_size_bytes_pct: f64,
pub avg_entries_per_node_pct: f64,
pub avg_fanout_pct: f64,
pub min_fanout_pct: f64,
pub max_fanout_pct: f64,
pub avg_fill_factor_pct: f64,
pub avg_leaf_fill_factor_pct: f64,
pub avg_internal_fill_factor_pct: f64,
pub avg_key_size_bytes_pct: f64,
pub avg_value_size_bytes_pct: f64,
pub min_key_size_bytes_pct: f64,
pub max_key_size_bytes_pct: f64,
pub min_value_size_bytes_pct: f64,
pub max_value_size_bytes_pct: f64,
pub total_keys_size_bytes_pct: f64,
pub total_values_size_bytes_pct: f64,
}Expand description
Percentage change between two statistics objects
Contains the percentage change for each numeric metric between two TreeStats objects.
Percentage change is calculated as: ((current - baseline) / baseline) * 100
Returns 0.0 for metrics where the baseline value is zero (to avoid division by zero).
Created by calling TreeStats::percentage_change.
§Example
use prolly::{Config, MemStore, Prolly};
let store = MemStore::new();
let prolly = Prolly::new(store, Config::default());
// Build initial tree
let mut tree1 = prolly.create();
for i in 0..50 {
tree1 = prolly.put(&tree1, format!("k{}", i).into_bytes(), b"v".to_vec()).unwrap();
}
let stats1 = prolly.collect_stats(&tree1).unwrap();
// Grow tree
let mut tree2 = tree1.clone();
for i in 50..100 {
tree2 = prolly.put(&tree2, format!("k{}", i).into_bytes(), b"v".to_vec()).unwrap();
}
let stats2 = prolly.collect_stats(&tree2).unwrap();
let pct = stats2.percentage_change(&stats1);
assert!(pct.total_key_value_pairs_pct > 0.0); // Grew by some percentageFields§
§num_nodes_pct: f64§num_leaves_pct: f64§num_internal_nodes_pct: f64§tree_height_pct: f64§total_key_value_pairs_pct: f64§total_tree_size_bytes_pct: f64§avg_node_size_bytes_pct: f64§min_node_size_bytes_pct: f64§max_node_size_bytes_pct: f64§avg_entries_per_node_pct: f64§avg_fanout_pct: f64§min_fanout_pct: f64§max_fanout_pct: f64§avg_fill_factor_pct: f64§avg_leaf_fill_factor_pct: f64§avg_internal_fill_factor_pct: f64§avg_key_size_bytes_pct: f64§avg_value_size_bytes_pct: f64§min_key_size_bytes_pct: f64§max_key_size_bytes_pct: f64§min_value_size_bytes_pct: f64§max_value_size_bytes_pct: f64§total_keys_size_bytes_pct: f64§total_values_size_bytes_pct: f64Trait Implementations§
Source§impl Clone for StatsPercentageChange
impl Clone for StatsPercentageChange
Source§fn clone(&self) -> StatsPercentageChange
fn clone(&self) -> StatsPercentageChange
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StatsPercentageChange
impl Debug for StatsPercentageChange
Source§impl<'de> Deserialize<'de> for StatsPercentageChange
impl<'de> Deserialize<'de> for StatsPercentageChange
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for StatsPercentageChange
impl PartialEq for StatsPercentageChange
Source§impl Serialize for StatsPercentageChange
impl Serialize for StatsPercentageChange
impl StructuralPartialEq for StatsPercentageChange
Auto Trait Implementations§
impl Freeze for StatsPercentageChange
impl RefUnwindSafe for StatsPercentageChange
impl Send for StatsPercentageChange
impl Sync for StatsPercentageChange
impl Unpin for StatsPercentageChange
impl UnsafeUnpin for StatsPercentageChange
impl UnwindSafe for StatsPercentageChange
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
Mutably borrows from an owned value. Read more
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> 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>
Converts
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>
Converts
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