#function #timing #execution-time #measure #measure-time #time

fun_time

fun_time是一个简单的Rust库,它允许您使用简单的属性轻松地计时函数调用!

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性能分析

Download history 805/week @ 2024-03-13 882/week @ 2024-03-20 791/week @ 2024-03-27 709/week @ 2024-04-03 748/week @ 2024-04-10 544/week @ 2024-04-17 661/week @ 2024-04-24 586/week @ 2024-05-01 557/week @ 2024-05-08 654/week @ 2024-05-15 603/week @ 2024-05-22 617/week @ 2024-05-29 620/week @ 2024-06-05 601/week @ 2024-06-12 471/week @ 2024-06-19 386/week @ 2024-06-26

2,287 每月下载量
用于 6 个crate (4 个直接)

MIT 许可证

10KB
137

fun_time

Crates.io docs.rs

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! 宏,因此函数的参数可以在消息中使用(前提是它们有 DebugDisplay)。
  • 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