Skip to content

Commit

Permalink
Add recycler reporting
Browse files Browse the repository at this point in the history
  • Loading branch information
sakridge committed Sep 9, 2021
1 parent 88a342b commit a2f2300
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions perf/src/recycler.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use rand::{thread_rng, Rng};
use solana_sdk::timing::AtomicInterval;
use std::sync::atomic::AtomicBool;
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::{Arc, Mutex, Weak};
Expand Down Expand Up @@ -35,6 +36,7 @@ pub struct RecyclerX<T> {
id: usize,
// Shrink window times the exponential moving average size of gc.len().
size_factor: AtomicUsize,
size_report: AtomicInterval,
}

impl<T: Default> Default for RecyclerX<T> {
Expand All @@ -46,6 +48,7 @@ impl<T: Default> Default for RecyclerX<T> {
stats: RecyclerStats::default(),
id,
size_factor: AtomicUsize::default(),
size_report: AtomicInterval::default(),
}
}
}
Expand Down Expand Up @@ -90,7 +93,7 @@ impl<T: Default + Reset + Sized> Recycler<T> {
}

pub fn allocate(&self, name: &'static str) -> T {
{
let (gc_len, gc_capacity) = {
const RECYCLER_SHRINK_WINDOW_HALF: usize = RECYCLER_SHRINK_WINDOW / 2;
const RECYCLER_SHRINK_WINDOW_SUB_ONE: usize = RECYCLER_SHRINK_WINDOW - 1;
let mut gc = self.recycler.gc.lock().unwrap();
Expand Down Expand Up @@ -120,7 +123,8 @@ impl<T: Default + Reset + Sized> Recycler<T> {
x.reset();
return x;
}
}
(gc.len(), gc.capacity())
};
let total = self.recycler.stats.total.fetch_add(1, Ordering::Relaxed);
trace!(
"allocating new: total {} {:?} id: {} reuse: {} max_gc: {}",
Expand All @@ -130,6 +134,9 @@ impl<T: Default + Reset + Sized> Recycler<T> {
self.recycler.stats.reuse.load(Ordering::Relaxed),
self.recycler.stats.max_gc.load(Ordering::Relaxed),
);
if self.recycler.size_report.should_update(10_000) {
datapoint_info!(name, ("size", gc_len, i64), ("capacity", gc_capacity, i64));
}

let mut t = T::default();
t.set_recycler(Arc::downgrade(&self.recycler));
Expand Down

0 comments on commit a2f2300

Please sign in to comment.