分析应用程序
RubyMine 提供了使用 rbspy 采样分析器分析正在运行的 Ruby/Rails 进程的能力。 分析器收集有关应用程序执行的信息。 您可以使用附加的分析器运行 Ruby/Rails 应用程序,也可以将分析器附加到已在运行的进程。 在您停止分析会话后,您可以分析每个方法/块花费的时间,并确定性能问题。
在本主题中,我们将向您展示如何运行/停止分析会话并分析结果。
先决条件
在开始分析会话之前,请根据此说明为您的平台安装 rbspy 分析器: Installing rbspy。 之后,您将能够使用 1.9.1 及更高版本的本地 Ruby MRI 解释器分析应用程序。 如果您的版本不受支持,请在 rbspy Github 仓库中创建一个问题: https://github.com/rbspy/rbspy/issues。
配置分析设置
在运行分析会话之前,您可以调整分析器设置。
打开 设置 对话框 Ctrl+Alt+S。
转到 构建、执行、部署 | 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 配置。 要使用分析器运行所需的配置,请执行以下步骤:
在 main toolbar 上选择所需的运行配置。
单击所选配置旁边的
按钮,然后选择 使用 'RbSpy Profiler' 运行 'configuration name'。

将分析器附加到正在运行的进程
要将分析器附加到您机器上已在运行的进程,请执行以下操作:
在主菜单中,进入 运行 | 将 Profiler 附加到进程.
从弹出窗口中选择所需的进程,然后按 Enter。

停止分析会话
在停止应用程序后,分析会话将自动停止。 要手动停止分析会话,请执行以下操作:
打开 分析器 工具窗口。
请点击
按钮。
分析会话完成后,您可以分析分析结果。
分析分析结果
分析数据显示在三个选项卡上 - 火焰图、 调用树 和 方法列表。 在左侧部分,您可以按指定的线程过滤数据。

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

RubyMine 使用不同的颜色表示各种类型的帧:
橙色表示项目 Ruby 方法调用。
深橙色表示来自外部 gem 的 Ruby 方法调用。
蓝色表示对本地 C 扩展的调用。
阅读火焰图时,请关注最宽的帧。 您可以从底部开始向上移动,按照从父帧到子帧的代码流。 如果您使用 icicle chart ,请从上到下阅读。
分析结果
将鼠标悬停在任何项目上以查看详细信息。
要放大/缩小图表,请使用工具栏上的 Ctrl + 鼠标滚轮 或
/
按钮。 您可以使用
按钮重置为初始图表宽度。
使用鼠标或箭头键滚动图表。
通过双击导航到特定方法。 在这种情况下,图表显示以灰色标记的父方法开始的调用栈。
右键单击项目并选择 跳转到源 以在编辑器中打开相应的代码。
右键单击项目并选择 在方法列表中聚焦方法 以在 Method List 选项卡中定位到相应的方法。
切换到倒挂图
倒挂图是一个上下颠倒的帧图。 您可以从上到下阅读此图表,按照从父帧到子帧的代码流。
请点击
按钮。
在调用列表中,启用 显示火焰图 选项。
调用树
调用树 选项卡显示程序调用树及每个方法在总分析时间中的百分比。

要配置和过滤调用树视图,请使用 和
按钮。
方法列表
方法列表 选项卡显示按采样数排序的方法列表。

对于列表中的每个方法,分析器在嵌套选项卡中提供更多信息。 回溯 选项卡显示所选方法被调用的位置。 合并的被调用者 选项卡显示从所选方法开始的调用轨迹。
导出和导入分析结果
导出结果
在主菜单中,转到 查看 | 工具窗口 | Profiler 以打开分析器工具窗口。
在左侧工具栏中,单击
。
在打开的对话框中,为文件命名并指定要保存的文件夹。 点击 保存。
导入结果
导入结果在您希望分析使用 rbspy 在生产服务器上记录的分析结果时非常有用。
要从文件导入分析结果,请从主菜单中选择 运行 | 导入 Profiler 结果 | 从文件。