RubyMine 2025.3 Help

分析应用程序

RubyMine 提供了使用 rbspy 采样分析器分析正在运行的 Ruby/Rails 进程的能力。 分析器收集有关应用程序执行的信息。 您可以使用附加的分析器运行 Ruby/Rails 应用程序,也可以将分析器附加到已在运行的进程。 在您停止分析会话后,您可以分析每个方法/块花费的时间,并确定性能问题。

在本主题中,我们将向您展示如何运行/停止分析会话并分析结果。

先决条件

在开始分析会话之前,请根据此说明为您的平台安装 rbspy 分析器: Installing rbspy。 之后,您将能够使用 1.9.1 及更高版本的本地 Ruby MRI 解释器分析应用程序。 如果您的版本不受支持,请在 rbspy Github 仓库中创建一个问题: https://github.com/rbspy/rbspy/issues。

配置分析设置

在运行分析会话之前,您可以调整分析器设置。

  1. 打开 设置 对话框 Ctrl+Alt+S。

  2. 转到 构建、执行、部署 | Ruby Profiler 页面并指定以下选项:

    • 名称 - 指定分析器名称。

    • RbSpy 可执行文件 - 指定 rbspy 可执行文件的路径。

    • 分析速率 - 设置每秒记录的采样数。

    • 分析子进程 - 指定是否分析被分析进程的子进程。

    在此对话框中,您可以使用 添加新配置 按钮添加具有特定设置的额外配置文件。 删除 按钮会移除选定的配置文件。

运行分析会话

RubyMine 提供了两种运行分析会话的主要方式:

  • 使用附加分析器运行 Ruby/Rails 应用程序

  • 将分析器附加到已在运行的进程

以下过程展示了如何启动分析会话。

使用分析器运行 Ruby 脚本

  • 右键单击编辑器或项目视图中的脚本,然后选择 使用 'RbSpy profiler' 运行 'script name'。

使用分析器运行测试

  • 要分析特定测试,请单击此测试旁边的 运行测试 按钮,然后选择 使用 'RbSpy profiler' 运行 'test name'。

    使用边距分析测试
  • 要分析特定文件中的测试,请右键单击编辑器或项目视图中的脚本,然后选择 使用 'RbSpy profiler' 运行 'test name'。

  • 要分析特定文件夹中的测试,请右键单击项目视图中的该文件夹,然后选择 使用 'RbSpy profiler' 运行。

使用分析器运行特定配置

RubyMine 允许您运行任何附加了分析器的 configuration。 例如,这可能是 Ruby、Rails、Rake 或 RSpec 配置。 要使用分析器运行所需的配置,请执行以下步骤:

  1. 在 main toolbar 上选择所需的运行配置。

  2. 单击所选配置旁边的 使用分析器运行 按钮,然后选择 使用 'RbSpy Profiler' 运行 'configuration name'。

    分析配置

将分析器附加到正在运行的进程

要将分析器附加到您机器上已在运行的进程,请执行以下操作:

  1. 在主菜单中,进入 运行 | 将 Profiler 附加到进程.

  2. 从弹出窗口中选择所需的进程,然后按 Enter。

    使用 RbSpy 分析器附加到

停止分析会话

在停止应用程序后,分析会话将自动停止。 要手动停止分析会话,请执行以下操作:

  1. 打开 分析器 工具窗口。

  2. 请点击 停止分析器 按钮。

分析会话完成后,您可以分析分析结果。

分析分析结果

分析数据显示在三个选项卡上 - 火焰图、 调用树 和 方法列表。 在左侧部分,您可以按指定的线程过滤数据。

分析结果

火焰图

此选项卡显示了调用栈在任何时刻的状态。 每个帧表示栈中的一个方法/块(栈帧)。 Y 轴表示从下到上的栈深度。 X 轴显示从最耗时的方法/块到最少耗时的方法/块的栈排序。

火焰图

RubyMine 使用不同的颜色表示各种类型的帧:

  • 橙色表示项目 Ruby 方法调用。

  • 深橙色表示来自外部 gem 的 Ruby 方法调用。

  • 蓝色表示对本地 C 扩展的调用。

阅读火焰图时,请关注最宽的帧。 您可以从底部开始向上移动,按照从父帧到子帧的代码流。 如果您使用 icicle chart ,请从上到下阅读。

分析结果

  • 将鼠标悬停在任何项目上以查看详细信息。

  • 要放大/缩小图表,请使用工具栏上的 Ctrl + 鼠标滚轮 或 放大/缩小 按钮。 您可以使用 实际缩放 按钮重置为初始图表宽度。

  • 使用鼠标或箭头键滚动图表。

  • 通过双击导航到特定方法。 在这种情况下,图表显示以灰色标记的父方法开始的调用栈。

  • 右键单击项目并选择 跳转到源 以在编辑器中打开相应的代码。

  • 右键单击项目并选择 在方法列表中聚焦方法 以在 Method List 选项卡中定位到相应的方法。

切换到倒挂图

倒挂图是一个上下颠倒的帧图。 您可以从上到下阅读此图表,按照从父帧到子帧的代码流。

  1. 请点击 展示设置 按钮。

  2. 在调用列表中,启用 显示火焰图 选项。

调用树

调用树 选项卡显示程序调用树及每个方法在总分析时间中的百分比。

调用树

要配置和过滤调用树视图,请使用 树节点视图设置 和 调用树过滤设置 按钮。

方法列表

方法列表 选项卡显示按采样数排序的方法列表。

方法列表

对于列表中的每个方法,分析器在嵌套选项卡中提供更多信息。 回溯 选项卡显示所选方法被调用的位置。 合并的被调用者 选项卡显示从所选方法开始的调用轨迹。

导出和导入分析结果

导出结果

  1. 在主菜单中,转到 查看 | 工具窗口 | Profiler 以打开分析器工具窗口。

  2. 在左侧工具栏中,单击 导出分析器结果。

  3. 在打开的对话框中,为文件命名并指定要保存的文件夹。 点击 保存。

导入结果

导入结果在您希望分析使用 rbspy 在生产服务器上记录的分析结果时非常有用。

  • 要从文件导入分析结果,请从主菜单中选择 运行 | 导入 Profiler 结果 | 从文件。

最后修改日期: 2025年 12月 5日