1 个不稳定版本
0.1.0 | 2019 年 11 月 20 日 |
---|
#238 在 性能分析
80KB
1.5K SLoC
包含 (ELF 可执行文件/库, 4KB) src/bin/stap_probes.o
tracers - Rust 仪器库
摘要
tracers
旨在成为一个易于使用且跨平台的 Rust crate,它使得向 Rust 程序添加高性能低开销的探针变得容易。在底层,它将使用每个平台的本地探针机制,例如 Linux 上的 System Tap、BSD 上的 DTrace 和 Windows 上的 ETW。没有支持探针机制的平台的将回退到无操作实现。
此 crate 的一个关键目标是能够将其放入任何 Rust 项目中,在任何合适的位置创建和触发探针,并且始终保留这些探针。当探针在编译时禁用时,应该没有运行时影响,当探针在编译中但运行时不启用时,探针的影响不应超过一两个 CPU 指令。
状态
重要:tracers
仍在早期实验阶段。作者在此保证它可能在您的系统上无法工作,可能造成数据丢失,并且肯定会导致过早脱发。请勿使用。
许可证
除非另有说明,否则本项目许可为以下之一
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
但是,以下 -sys
crate 的许可证与它们包装的第三方代码的许可证相对应
tracers-libelf-sys
- 包装elfutils
库,因此许可证为 LGPLv3tracers-libstapsdt-sys
- 包装libstapsdt
,因此许可证为 MIT
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的,提交给tracers
以供包含的贡献,将双重许可如上所述,不附加任何额外条款或条件。
发布
本节仅适用于维护者。
要发布新版本,必须首先发布依赖的crate。bin/publish.sh
脚本有助于自动化流程,但仍相当手动。
发布流程
-
更新所有crate及其对其他
tracers
crate的依赖项的version
属性,到新的目标版本。 -
确保所有依赖项都具有本地开发的路径依赖项和发布版本依赖项。这些必须与将要发布的新版本一致。
-
更新
documentation
链接,以反映当前版本。
crate必须按以下顺序发布
tracers-core
tracers-libelf-sys
tracers-libstapsdt-sys
tracers-codegen
tracers-macros-hack
tracers-macros
tracers-dyn-stap
tracers-dyn-noop
tracers-build
tracers
依赖项
~6–17MB
~243K SLoC