更新时间:2024-07-31 GMT+08:00
分享

性能分析

Profiler性能分析,自动获取应用程序运行过程中CPU和内存和时延的使用情况,通过火焰图实时展示每一个方法、类和线程的调用关系和执行效率,帮助优化代码性能。

操作步骤

  1. 登录AOM 2.0控制台。
  2. 在左侧导航栏选择“应用监控 > 组件列表”,进入组件列表页面。
  3. 在左侧“快速筛选”栏中,选择“区域”、“应用”以及“技术栈”。
  4. 单击“组件”列,某一个组件名称,进入该组件指标项详情页,默认展示“接口调用”详细信息。
  5. 单击“Profiler性能分析”,切换至Profiler性能分析页签。

    图1 性能分析

  6. 在Profiler页签选择您想要查看的实例、性能分析类型、范围以及聚合维度,可以查看该实例对应的性能分析数据。

    表1 性能分析参数说明

    选择项

    参数

    说明

    类型

    CPU Time

    每个方法在CPU上的运行时间。

    类型

    Memory

    每个方法分配的堆内存大小。

    类型

    Latency

    trace相关线程的方法执行的总耗时。包括方法在CPU上的运行时间、等待I/O的时间以及方法运行时发生的任何其他时间。

    范围

    My Code

    用户代码。

    All Code

    全部代码。

    聚合维度

    Line

    代码行。

    Method

    方法。

    Class

    类。

    Package

    Java包名称。

    您还可以根据需要执行以下操作:

    • 按照方法路径搜索:搜索框设置搜索条件后,单击,查看满足搜索条件的火焰图。
    • 设置时间范围,查看已设时间范围内的数据。可通过如下两种方式设置时间范围:
      • 方式一:使用AOM预定义好的时间标签,例如,近1小时、近6小时等,您可根据实际需要选择不同的时间粒度。
      • 方式二:通过开始时间和结束时间,自定义时间范围,您最长可设置为1天。
    • 查看每一个线程、方法、类和包的调用关系和执行效率的实时数据。
      表2 Profiler参数说明

      参数

      说明

      火焰图

      • 火焰图Y轴(纵轴)表示调用栈,每一层都是一个函数(包),调用的越深,火焰层数越高,最底部(火焰尖)是正在执行的函数,上方是他的父函数。
      • 火焰图X轴(横轴)表示占用时间(内存视图表示占用内存)长度,占用的cpu时间越长,其宽度越宽。
      • 在火焰图中,相同的方法或包显示的颜色相同。
      • 鼠标放在火焰图上,展示某一个方法、类和线程的详细信息。
      • 单击火焰图中某个方法条,该方法条横向放大。单击“Total”列标题行,火焰图还原。

      方法路径

      • 鼠标放在Location类某个方法名称上,展示该方法的详细信息。
      • 单击Location类某个方法名称,火焰图侧对应的方法会高亮显示,其余方法灰化。再次单击同一个方法名称,火焰图恢复原状。

      Self

      仅方法自身的性能消耗,不包含调用方法。该数值为所有线程执行结果的总和,因此结果有可能大于所选时间段。

      Total

      总性能消耗,包含方法自身及其调用方法。该数值为所有线程执行结果的总和,因此结果有可能大于所选时间段。

相关文档