#ruby #profiler #mri

pyroscope-rbspy-oncpu

Ruby 的采样 CPU 分析器

2 个不稳定版本

0.19.1 2024 年 4 月 4 日
0.17.0 2023 年 7 月 7 日

#92 in 性能分析

Download history 17/week @ 2024-04-16 6/week @ 2024-04-23 2/week @ 2024-04-30 7/week @ 2024-05-07 6/week @ 2024-05-14 34/week @ 2024-05-21 1/week @ 2024-05-28 1/week @ 2024-06-04 10/week @ 2024-06-11

89 每月下载量

MIT 许可证

8.5MB
217K SLoC

rbspy

crates.io ci

您有一个正在运行的 Ruby 程序想要分析,但又不想重新启动它?想要轻松分析 Ruby 命令行程序?您需要 rbspy!rbspy 只需运行一个简单的命令即可分析任何 Ruby 程序。

rbspy 允许您分析已运行的 Ruby 进程。您提供进程 ID,它就会开始分析。它是一个采样分析器,这意味着它具有 低开销在生产环境中运行安全

rbspy 允许您记录分析数据,将原始分析数据保存到磁盘,然后以各种不同的方式进行分析。

仅墙钟分析

有两种主要的代码分析方式——您可以选择分析应用程序所做的所有操作(包括等待),或者只在应用程序使用 CPU 时进行分析。

rbspy 分析程序所做的所有操作(包括等待)——没有仅当程序使用 CPU 时进行分析的选项。

文档

=> https://rbspy.github.io

要求

rbspy 支持 Linux*、Mac、Windows 和 FreeBSD。

* 需要内核版本 3.2+。对于 Ubuntu,这意味着 Ubuntu 12.04 或更高版本。

添加推荐意见

如果 rbspy 帮助您使程序更快,最好的感谢项目的方式就是向这个 GitHub 问题的成功故事 添加内容,人们会讨论 rbspy 如何帮助他们!听到 rbspy 正在工作对人们来说是一种很好的动力 :)

安装

独立二进制文件

在 Mac 上,您可以使用 Homebrew 进行安装:brew install rbspy

在 Linux 上

  1. GitHub 发布页面 下载 rbspy 的最新版本。
    • 带有 musl 标签的二进制文件针对 musl libc 进行了静态链接,可以在大多数系统上使用。带有 gnu 标签的二进制文件针对 GNU libc 进行了动态链接,因此您需要安装它。
  2. 解压缩它
  3. rbspy 二进制文件移动到 /usr/local/bin

或者查看我们文档中的 安装 rbspy

作为一个 Rust 库

要在你的 Rust 项目中使用 rbspy,请将以下内容添加到你的 Cargo.toml 文件中

[dependencies]
rbspy = "0.8"

警告:rbspy crate 的 API 尚未稳定。rbspy 达到 1.0 版本后,我们将遵循 语义化版本控制

贡献

欢迎提交改进可用性、修复错误或帮助 rbspy 支持更多操作系统的拉取请求。如果你有任何问题,最好的询问方式是 在 GitHub 上创建一个问题

即使你不是经验丰富的 Rust 程序员,也非常欢迎你贡献。rbspy 用 Rust 编写的主要原因之一是 Rust 比 C/C++ 更易于初学者学习。你可以访问 https://www.rust-lang.net.cn/ 了解 Rust 的学习资源。

构建 rbspy

  1. crates.io 安装 cargo
  2. cargo build 用于构建
  3. cargo test 用于测试

构建的二进制文件将位于 target/debug/rbspy

依赖项

~13–25MB
~389K SLoC