1 个不稳定版本
0.12.1 | 2022年6月27日 |
---|
#343 在 性能分析
在 2 个库中使用(通过 pyroscope_rbspy)
8.5MB
212K SLoC
rbspy
你可能想找的是 rbspy。这是一个支持在 CPU 上进行性能分析的分支。

你有正在运行的 Ruby 程序需要进行分析,但又不想重启它?想要轻松分析 Ruby 命令行程序?你需要 rbspy
!rbspy 只需运行一个简单命令即可分析任何 Ruby 程序。
rbspy
允许您分析已运行的 Ruby 进程。您提供进程 ID,它就开始分析。它是一个采样分析器,这意味着它具有 低开销 和在 生产环境中运行的安全性。
rbspy
允许您记录分析数据,将原始分析数据保存到磁盘,然后以多种不同的方式进行分析。
仅墙钟分析
有两种主要的代码分析方式 — 您可以选择分析应用程序做的所有事情(包括等待),或者仅当应用程序使用 CPU 时进行分析。
rbspy 分析程序做的所有事情(包括等待) — 没有仅当程序使用 CPU 时进行分析的选项。
文档
要求
rbspy 支持 Linux*、Mac、Windows 和 FreeBSD。
* 需要 3.2+ 内核版本。对于 Ubuntu,这意味着 Ubuntu 12.04 或更高版本。添加推荐语
如果 rbspy 帮助您使程序运行更快,最感谢这个项目的方式就是向这个 GitHub 问题的 成功故事 添加内容,人们会讨论 rbspy 如何帮助他们!听到 rbspy 正在工作给人带来了很好的动力 :)
安装
独立二进制文件
在Mac上,您可以使用Homebrew进行安装: brew install rbspy
。
在Linux上
- 从GitHub发行页面下载最新版本的
rbspy
。- 标记为
musl
的二进制文件是静态链接musl libc,可以在大多数系统上使用。标记为gnu
的二进制文件是动态链接GNU libc,因此您需要安装它。
- 标记为
- 解压它
- 将
rbspy
二进制文件移动到/usr/local/bin
或者查看我们文档中的安装rbspy。
作为一个Rust库
要在您的Rust项目中使用rbspy,请将以下内容添加到您的Cargo.toml中
[dependencies]
rbspy = "0.8"
警告:rbspy crate的API尚不稳定。rbspy达到版本1.0后,我们将遵循语义版本控制。
贡献
欢迎提交改进可用性、修复错误或帮助rbspy支持更多操作系统的pull请求。如果您有任何问题,最佳提问方式是创建GitHub问题!
如果您不是非常有经验的Rust程序员,也非常欢迎您贡献。rbspy用Rust编写的主要原因是Rust对于初学者来说比C/C++更容易接近。https://rust-lang.net.cn/有丰富的Rust学习资源。
构建rbspy
- 从crates.io安装cargo
cargo build
进行构建cargo test
进行测试
构建的二进制文件将位于target/debug/rbspy
依赖项
~13–25MB
~356K SLoC