MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / efficiency_metrics

Method efficiency_metrics

graphlite/src/cache/plan_cache.rs:325–353  ·  view source on GitHub ↗

Get cache efficiency metrics

(&self)

Source from the content-addressed store, hash-verified

323
324 /// Get cache efficiency metrics
325 pub fn efficiency_metrics(&self) -> CacheEfficiencyMetrics {
326 let stats = self.stats.read().unwrap();
327 let entries = self.entries.read().unwrap();
328
329 let total_usage: u64 = entries.values().map(|e| e.usage_count).sum();
330 let avg_usage = if entries.is_empty() {
331 0.0
332 } else {
333 total_usage as f64 / entries.len() as f64
334 };
335
336 let memory_efficiency = if self.max_memory_bytes == 0 {
337 0.0
338 } else {
339 stats.current_memory_bytes as f64 / self.max_memory_bytes as f64
340 };
341
342 CacheEfficiencyMetrics {
343 hit_rate: stats.hit_rate(),
344 memory_utilization: memory_efficiency,
345 average_entry_usage: avg_usage,
346 eviction_rate: if stats.hits + stats.misses == 0 {
347 0.0
348 } else {
349 stats.evictions as f64 / (stats.hits + stats.misses) as f64
350 },
351 compilation_time_saved_ms: stats.total_compilation_time_saved_ms,
352 }
353 }
354}
355
356/// Cache efficiency metrics for monitoring

Callers 1

get_statsMethod · 0.80

Calls 4

unwrapMethod · 0.80
is_emptyMethod · 0.45
lenMethod · 0.45
hit_rateMethod · 0.45

Tested by

no test coverage detected