#coz #profiler #tracing #bridge #causal #latency

tracing-coz

Coz 性能分析器和 rust tracing 之间的桥梁

1 个不稳定版本

0.1.1 2019年9月26日
0.1.0 2019年9月26日

#240 in 性能分析

Download history 8/week @ 2024-03-11 31/week @ 2024-03-18 41/week @ 2024-03-25 41/week @ 2024-04-01 1/week @ 2024-04-29 6/week @ 2024-05-13 1/week @ 2024-06-10 65/week @ 2024-06-24

每月66次下载

MIT/Apache

8KB
72

tracing-coz

Rust-tracing 支持 coz 因果性能分析器

Documentation

用法

首先,按照 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-2.0许可证定义的,您有意提交给本项目包含在内的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。

依赖项

~1.5MB
~24K SLoC