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日 |
#47 在 性能分析 中
2,287 每月下载量
用于 6 个crate (4 个直接)
10KB
137 行
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:,并在完成时打印 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: 完成 in DURATION"
依赖
~2MB
~43K SLoC