Memory Stats

Crates.io License Build Status Dragon Powered

A cross-platform memory profiler for Rust, supporting Windows, Linux, and MacOS. This crate provides two metrics:

Usage

Add memory-stats as a dependency to your Cargo.toml:

toml [dependencies] memory-stats = "1.0.0"

Optional Features

serde: Enables serialization and deserialization of the MemoryStats struct.

Example

Here's an example that prints out the current memory usage:

```rs use memorystats::memorystats;

fn main() { if let Some(usage) = memorystats() { println!("Current physical memory usage: {}", usage.physicalmem); println!("Current virtual memory usage: {}", usage.virtual_mem); } else { println!("Couldn't get the current memory usage :("); } } ```

Caveats

Getting accurate memory usage on Linux is fairly expensive and not always possible. This crate always attempts to use the statistics from /proc/self/smaps if avaliable. However, since support for /proc/self/smaps might not be compiled in on all kernels, this crate will also use the faster but less accurate statistics from /proc/self/statm as a fallback.

License

This crate is dual-licensed under either:

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.