6 个版本

0.2.4 2020 年 10 月 3 日
0.2.3 2020 年 9 月 24 日
0.1.0 2020 年 9 月 21 日

271性能分析

每月 24 次下载

MIT 许可证

16KB
303

bench-rs

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

一个基准测试库。

  • 稳定 Rust (无 black_box)
  • 美观的输出
  • 异步支持
  • 自定义异步运行时
  • 内存使用
  • 自定义格式化
  • 直观的数值单位
  • 支持自定义内存分配器

示例

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

查看 ./tests/bench.rs

image.png

black_box

我不知道如何实现 black_box。

请使用 core::hint::black_box。 (不稳定)

如果您有更好的想法,欢迎提交 pull request 或打开 issue

global_allocator

为了检测内存使用,bench-rs 修改了 global_allocator。这将使得无法使用其他分配器。如果您需要使用其他分配器

更改您的分配器: (如果您使用的是 std::alloc::System)

use std::alloc::System;
use bench_rs::{TrackAllocator, new_allocator};

#[global_allocator]
pub static GLOBAL: TrackAllocator<System> = new_allocator!(System);

关闭默认功能

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

导入名为 GLOBAL 的分配器

use bench_rs::bench;
use yourlib::GLOBAL;

#[bench]
fn ...

如果您的分配器名称不是 GLOBAL,请将其别名设置为 GLOBAL

使用 yourlib::OtherAllocator作为 GLOBAL

因为 bencher-macro 将在 bench 函数同一级别查找 GLOBAL.counter()GLOBAL.peak()


我是一个 Rust 初学者,如果代码有问题,请纠正我。谢谢

欢迎贡献

依赖项

~2–9.5MB
~95K SLoC