solana_runtime/
cache_hash_data_stats.rs

1//! Cached data for hashing accounts
2#[derive(Default, Debug)]
3pub struct CacheHashDataStats {
4    pub cache_file_size: usize,
5    pub cache_file_count: usize,
6    pub total_entries: usize,
7    pub loaded_from_cache: usize,
8    pub entries_loaded_from_cache: usize,
9    pub save_us: u64,
10    pub saved_to_cache: usize,
11    pub write_to_mmap_us: u64,
12    pub create_save_us: u64,
13    pub load_us: u64,
14    pub read_us: u64,
15    pub decode_us: u64,
16    pub merge_us: u64,
17    pub unused_cache_files: usize,
18}
19
20impl CacheHashDataStats {
21    pub fn merge(&mut self, other: &CacheHashDataStats) {
22        self.cache_file_size += other.cache_file_size;
23        self.total_entries += other.total_entries;
24        self.loaded_from_cache += other.loaded_from_cache;
25        self.entries_loaded_from_cache += other.entries_loaded_from_cache;
26        self.load_us += other.load_us;
27        self.read_us += other.read_us;
28        self.decode_us += other.decode_us;
29        self.save_us += other.save_us;
30        self.saved_to_cache += other.saved_to_cache;
31        self.create_save_us += other.create_save_us;
32        self.cache_file_count += other.cache_file_count;
33        self.write_to_mmap_us += other.write_to_mmap_us;
34        self.unused_cache_files += other.unused_cache_files;
35    }
36
37    pub fn report(&self) {
38        datapoint_info!(
39            "cache_hash_data_stats",
40            ("cache_file_size", self.cache_file_size, i64),
41            ("cache_file_count", self.cache_file_count, i64),
42            ("total_entries", self.total_entries, i64),
43            ("loaded_from_cache", self.loaded_from_cache, i64),
44            ("saved_to_cache", self.saved_to_cache, i64),
45            (
46                "entries_loaded_from_cache",
47                self.entries_loaded_from_cache,
48                i64
49            ),
50            ("save_us", self.save_us, i64),
51            ("write_to_mmap_us", self.write_to_mmap_us, i64),
52            ("create_save_us", self.create_save_us, i64),
53            ("load_us", self.load_us, i64),
54            ("read_us", self.read_us, i64),
55            ("decode_us", self.decode_us, i64),
56            ("unused_cache_files", self.unused_cache_files, i64),
57        );
58    }
59}