bench-rs

Rust docs.rs GitHub code size in bytes Downloads GitHub Crates.io

A benchmark library.

Examples

$ cargo test --release --color=always -q --package bench-rs --test bench --no-fail-fast -- --test-threads=1 --nocapture Look ./tests/bench.rs

image.png

black_box

I don't know how to implement the black box.

Please use core::hint::black_box. (unstable)

If you have a better idea, welcome to submit a pull request or open an issue

global_allocator

In order to detect Memory usage, bench-rs modified global_allocator. This will make it impossible to use other allocators. If you need to use other allocator:

Change your allocator: (if your allocator is std::alloc::System) ``` use std::alloc::System; use benchrs::{TrackAllocator, newallocator};

[global_allocator]

pub static GLOBAL: TrackAllocator = new_allocator!(System); ```

Turn off default features: [dependencies] bench-rs = { version = "*", default-features = false }

Import the allocator named GLOBAL: ``` use bench_rs::bench; use yourlib::GLOBAL;

[bench]

fn ... `` If your allocator name is notGLOBAL, please set its alias toGLOBAL`:

use yourlib::OtherAllocator as GLOBAL

Because the bencher-macro will look for GLOBAL.counter() and GLOBAL.peak() at the same level of the bench function.


I am a rust beginner, please correct me if the code is bad. Thank you

Contributions welcome