pub struct CacheMetrics {
pub hits: AtomicU64,
pub misses: AtomicU64,
pub evictions: AtomicU64,
pub admissions: AtomicU64,
pub contention_events: AtomicU64,
}Fields§
§hits: AtomicU64§misses: AtomicU64§evictions: AtomicU64§admissions: AtomicU64§contention_events: AtomicU64Implementations§
Source§impl CacheMetrics
impl CacheMetrics
pub fn new() -> Self
Sourcepub fn hits(&self) -> u64
pub fn hits(&self) -> u64
Examples found in repository?
examples/sample_app.rs (line 230)
216fn metrics_hit_ratio() {
217 use subms_block_cache::MetricsCache;
218 println!("\n== metrics: hit-ratio observability ==");
219 let mut cache: MetricsCache<u64, String> = MetricsCache::with_capacity(4);
220 for id in 0u64..4 {
221 cache.put(id, read_block(id));
222 }
223 let _ = cache.get(&0);
224 let _ = cache.get(&1);
225 let _ = cache.get(&2);
226 let _ = cache.get(&99);
227 let m = cache.metrics();
228 println!(
229 " hits {}, misses {}, hit ratio {:.2}",
230 m.hits(),
231 m.misses(),
232 m.hit_ratio()
233 );
234 assert_eq!(m.hits(), 3);
235 assert_eq!(m.misses(), 1);
236 assert!((m.hit_ratio() - 0.75).abs() < 1e-9);
237}Sourcepub fn misses(&self) -> u64
pub fn misses(&self) -> u64
Examples found in repository?
examples/sample_app.rs (line 231)
216fn metrics_hit_ratio() {
217 use subms_block_cache::MetricsCache;
218 println!("\n== metrics: hit-ratio observability ==");
219 let mut cache: MetricsCache<u64, String> = MetricsCache::with_capacity(4);
220 for id in 0u64..4 {
221 cache.put(id, read_block(id));
222 }
223 let _ = cache.get(&0);
224 let _ = cache.get(&1);
225 let _ = cache.get(&2);
226 let _ = cache.get(&99);
227 let m = cache.metrics();
228 println!(
229 " hits {}, misses {}, hit ratio {:.2}",
230 m.hits(),
231 m.misses(),
232 m.hit_ratio()
233 );
234 assert_eq!(m.hits(), 3);
235 assert_eq!(m.misses(), 1);
236 assert!((m.hit_ratio() - 0.75).abs() < 1e-9);
237}pub fn evictions(&self) -> u64
pub fn admissions(&self) -> u64
pub fn contention_events(&self) -> u64
Sourcepub fn hit_ratio(&self) -> f64
pub fn hit_ratio(&self) -> f64
Examples found in repository?
examples/sample_app.rs (line 232)
216fn metrics_hit_ratio() {
217 use subms_block_cache::MetricsCache;
218 println!("\n== metrics: hit-ratio observability ==");
219 let mut cache: MetricsCache<u64, String> = MetricsCache::with_capacity(4);
220 for id in 0u64..4 {
221 cache.put(id, read_block(id));
222 }
223 let _ = cache.get(&0);
224 let _ = cache.get(&1);
225 let _ = cache.get(&2);
226 let _ = cache.get(&99);
227 let m = cache.metrics();
228 println!(
229 " hits {}, misses {}, hit ratio {:.2}",
230 m.hits(),
231 m.misses(),
232 m.hit_ratio()
233 );
234 assert_eq!(m.hits(), 3);
235 assert_eq!(m.misses(), 1);
236 assert!((m.hit_ratio() - 0.75).abs() < 1e-9);
237}pub fn record_hit(&self)
pub fn record_miss(&self)
pub fn record_eviction(&self)
pub fn record_admission(&self)
pub fn record_contention(&self)
Trait Implementations§
Source§impl Debug for CacheMetrics
impl Debug for CacheMetrics
Source§impl Default for CacheMetrics
impl Default for CacheMetrics
Source§fn default() -> CacheMetrics
fn default() -> CacheMetrics
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for CacheMetrics
impl RefUnwindSafe for CacheMetrics
impl Send for CacheMetrics
impl Sync for CacheMetrics
impl Unpin for CacheMetrics
impl UnsafeUnpin for CacheMetrics
impl UnwindSafe for CacheMetrics
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