1 个不稳定版本
0.1.1 | 2019年9月26日 |
---|---|
0.1.0 |
|
#240 in 性能分析
每月66次下载
8KB
72 行
tracing-coz
用法
首先,按照 coz
中的说明安装 coz
命令。
请注意,这个包是 rust-coz 的高层封装,因此相关信息适用于此包。
使用此包,spans
被映射到 coz::begin!
和 coz::end!
,而 events
被映射到 coz::progress!
,分别对应吞吐量或延迟跟踪点。更多详细信息可以在 上游找到。
在为代码添加了监控后,您还需要确保使用 DWARF 调试信息进行编译。为此,您需要再次配置 Cargo.toml
[profile.release]
debug = 1
接下来,您可以使用 cargo build --release
命令构建您的应用程序,然后最终可以使用 coz run --- ./target/release/$your_binary
运行它。
注意事项
到目前为止已知的注意事项,用于生成收集信息的报告
-
Rust程序默认情况下在与
coz
一起运行时会发生段错误,这与plasma-umass/coz#110相关的问题有关。Rust程序设置了sigaltstack
以运行段错误处理程序来打印"栈已用完",但这个备用栈太小,无法运行SIGPROF
处理程序,这是coz
安装的。为了处理这个问题,这个crate提供了一个coz::thread_init()
函数,该函数将Rust默认安装的sigaltstack
大小增加到足够运行coz
的程度。如果您看到段错误或损坏的报告,您可能希望手动调用coz::thread_init()
,而不是等待这个crate为您自动调用它,我们在这里为了方便起见导出了coz::thread_init()
。 -
调试信息对于从
coz
获取报告至关重要。确保您的程序是用至少行表信息(debug = 1
)编译的,以确保您获得使用coz
的最佳体验。 -
目前
coz
仅在Linux上运行,尽管这个crate应该可以在所有平台上编译,但它实际上仅在Linux上起作用。
许可证
本项目可使用以下任一许可证:
- Apache License, Version 2.0, (LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交给本项目包含在内的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。
依赖项
~1.5MB
~24K SLoC