3 个版本
0.1.2 | 2024 年 6 月 14 日 |
---|---|
0.1.1 | 2024 年 6 月 7 日 |
0.1.0 | 2024 年 6 月 7 日 |
#218 在 日期和时间 中
6KB
82 行
通过宏 #[profile]
实现自动函数分析。
使用
使用 #[profile]
注释一个函数。执行时间将以函数开始时 Instant::elapsed
报告的秒分数自动记录。
如果 debug_assertions
为真,则宏才会展开。默认情况下,发布版本中这不是真的,但可以通过添加以下内容来启用:
[profile.release]
debug-assertions=true
到 Cargo.toml。
只有在当前活动级别的日志级别启用时,才会创建分析对象。
use proflogger::profile;
#[profile]
fn func1() {
std::thread::sleep(std::time::Duration::from_secs(1));
// will log
// func1: 1.000000000
// at log::Level::Trace
}
// By default, the log level is set to `log::level::Trace`,
// but this can be customized like
#[profile(Error)]
fn expensive_function(arg1: usize, arg2: usize) -> usize {
(arg1..arg2).map(|a| a * a).sum()
}
依赖项
~0.3–0.8MB
~19K SLoC