| // Copyright 2024 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| use anyhow::Result; |
| use resourced::process_stats; |
| use resourced::process_stats::MemKind; |
| use resourced::process_stats::ProcessGroupKind; |
| |
| fn main() -> Result<()> { |
| let stats = process_stats::get_all_memory_stats("/proc", "/sys")?; |
| |
| println!("group total anon file shmem swap"); |
| for (process_kind, stats) in stats.iter().enumerate() { |
| const MIB: u64 = 1024 * 1024; |
| let group_name = format!("{:?}", ProcessGroupKind::from(process_kind)); |
| println!( |
| "{:<9} {:>5} {:>5} {:>5} {:>5} {:>5} ", |
| group_name.to_ascii_lowercase(), |
| stats[MemKind::Total as usize] / MIB, |
| stats[MemKind::Anon as usize] / MIB, |
| stats[MemKind::File as usize] / MIB, |
| stats[MemKind::Shmem as usize] / MIB, |
| stats[MemKind::Swap as usize] / MIB, |
| ); |
| } |
| Ok(()) |
| } |