13个版本
0.0.13 | 2024年2月12日 |
---|---|
0.0.12 | 2024年2月3日 |
在并发中排名413
每月下载191次
38KB
781 行
unlock
多线程代码跟踪和故障排除的辅助工具。
用法
从该包导入RwLock
和Mutex
而不是直接导入parking_lot
。
之后,您可以像这样对代码段进行测量
let condition = true;
if condition {
unlock::capture();
}
/* do some work */
if condition {
let events = unlock::drain();
unlock::html::write("trace.html", &events)?;
println!("Wrote trace.html");
}
它是如何工作的
此库提供了两种外观类型
这些与高性能并发跟踪系统集成以捕获事件。虽然这会有一些开销,但我们的目标是使其尽可能小。
一旦工作负载已经被测量,就可以调用drain
函数来收集这些事件,然后可以使用内置方法(如html::write
)进行格式化,或者使用serde
进行序列化以便稍后处理。
功能
trace
- 启用真实跟踪支持。如果此功能被禁用,则此库将由一个可以轻松优化的占位符替换。parking_lot
(默认)- 启用对parking_lot
类型的支持。如果此功能被启用且trace
被禁用,则将重新导出parking_lot
原语。serde
- 启用事件的序列化。
依赖项
~0.8–6.5MB
~34K SLoC