8 个版本
0.3.4 | 2024年1月18日 |
---|---|
0.3.3 | 2023年10月14日 |
0.3.0 | 2023年9月21日 |
0.2.1 | 2023年1月2日 |
0.1.0 | 2022年12月23日 |
#15 in #计时测量
2,098 每月下载量
在 7 个包中使用 (通过 fun_time)
16KB
195 行
fun_time
fun_time 是一个简单的 Rust 库,允许你使用简单的属性轻松计时函数调用!
基本示例
#[fun_time(message = "Heavy calculations on: {a_value}")]
fn some_cool_function(a_value: String) -> usize {
a_value.len()
}
fn main() {
let my_value_length = some_cool_function(String::from("Hello, world."));
}
上述代码将在函数开始时打印 Starting: Hello, world:
,并在完成时打印 Heavy calculations on: Hello, world: Done in <duration>
。
配置
有一些属性允许你配置 fun_time
属性的行为。
message
允许你设置一个消息,该消息将在开始时打印,并在完成时传递给format!
宏,因此可以将在函数中的参数用于消息(前提是它们具有Debug
或Display
)。when
允许你配置何时收集计时。这个值的可能值有:"always"
,正如其名,将始终收集计时信息,和"debug"
,这将只在cfg!(debug_assertions)
评估为true
时收集。give_back
是一个标志,使得包装的函数现在返回经过的时间而不是打印它。为此,它修改了返回类型,例如:从-> &'a str
修改为-> (&'a str, std::time::Duration)
。这允许您处理打印或存储计时信息。reporting
(不能与 give_back 一起使用)确定报告的方式。可能选项包括:"println"
,它将使用println!
打印到标准输出。当使用log
功能时,"log"
选项才可用。这默认使用 log crate 的info!
级别日志,这可以受到level
选项的影响。level
设置日志消息的级别,可以是log::Level
枚举可以解析的任何选项。
报告
报告的消息格式如下
开始消息: "开始:YOUR_MESSAGE_HERE"
完成消息: "YOUR_MESSAGE_HERE:耗时 DURATION"
依赖项
~2MB
~42K SLoC