A cross-platform memory profiler for Rust, supporting Windows, Linux, and MacOS. This crate provides two metrics:
Add memory-stats
as a dependency to your Cargo.toml
:
toml
[dependencies]
memory-stats = "1.0.0"
serde
: Enables serialization and deserialization of the MemoryStats
struct.
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 :("); } } ```
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.
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.