查看热点信息
前提条件
已创建在线分析任务,且分析任务正在进行中。
热点分析指的是通过perf性能分析工具采集某些时刻的cpu的栈顶信息,统计当前jvm中的热点方法。以倒火焰图的形式查询。
查看热点
- 在Java性能分析工具界面的“任务/报告列表”区域单击“在线分析”列表中指定分析任务的名称。
打开“概览”页面。
- 单击“热点”页签。
打开“热点”页签,默认显示“热点函数”页面,点击“新建热点分析”按钮查看热点信息,如图2所示,参数如表1所示。
- 服务器不支持热点分析时,“新建热点分析”按钮置灰禁用,页面标示无法使用原因和如何使用的方法。
- 可以在启动是设置过滤不需要关注的函数方法;如果设置“需排除分析的方法”,可以点击“查看详情”查看。
- 支持全屏显示,需要查看方法详情可以点击对应图形进行详情查看。
- 可通过点击“重建热点分析”按钮进行重新创建热点分析任务。
- 火焰图可通过点击按钮导出html文件查看。
图1 新建热点分析
表1 新建热点分析参数说明 参数
说明
数据防干扰
工具会暂停概览、CPU和GC页签下动态数据的采集,可以让热点分析更加准确。默认打开。
采样方式
配置是否限制采样时长。默认选择“指定采样时长”,可选:“指定采样时长”和“不限制采样时长”。
采样时长(秒)
显示采集数据的时长。采样方式选择“指定采样时长”时需配置。
采样间隔(毫秒)
显示采集数据的间隔时间。
采样事件类型
显示采集数据的类型。默认选择“CPU”,可选:
- CPU
- CYCLES
- LOCK
- CACHE_MISSES
- ALLOC
配置堆栈深度
配置采集时的最大栈深。默认关闭。
采集的最大栈深
显示采集数据的最大栈深。打开“配置堆栈深度”时需配置;默认值为16,范围为1-2048。
反汇编/字节码分析
配置是否开启反汇编/字节码分析。默认关闭,开启后应用性能开销将增大,可能会影响程序性能。采样事件类型选择“CPU”、“CYCLES”或“CACHE_MISSES”时可配置。
分析内核态调用
配置是否开启内核态调用的分析。默认关闭。采样事件类型选择“CPU”、“CYCLES”或“CACHE_MISSES”时可配置。
需排除分析的方法
显示用户设置的不需采集的数据。
必须分析的方法
显示必须采集的数据。
触发开始分析的方法
显示触发开始分析的方法。采样事件类型选择“CPU”、“CYCLES”或“CACHE_MISSES”时可配置。
触发结束分析的方法
显示触发结束分析的方法。采样事件类型选择“CPU”、“CYCLES”或“CACHE_MISSES”时可配置。
- 单击“方法调用”页签。
打开“方法调用”页签,点击“新建方法调用分析”按钮查看方法调用信息,如图3所示,参数如表2所示。
- 新建任务时,可点击“增加类”选择多个需要分析的方法,目前无数量上限。
- 输入类名称和方法时支持联想功能。
- 当前页签进行数据分析时,其他需点击按钮启动分析的页签将会停止分析(如IO、数据库、Web页签),如需再次查看其他页签分析结果,请切换后再次分析。
图4 方法调用分析结果
表2 新建方法调用分析参数说明 参数
说明
新建方法调用分析
类名称
配置需要进行分析的类的名称。
方法
配置需要分析的方法名。
增加类
点击可添加更多需分析的类和方法。
需排除的内容
配置需要排除的类和方法名。
必须分析的内容
配置必须分析的类额方法名,必须分析的内容优先级大于需排除的内容。
采集的最大栈深
配置分析的最大栈深,只限制java栈。
默认为8,范围为1-64。
分析结果
入口信息
显示新建时配置的类和方法名。
序号
显示对所分析的类和方法的排序。
状态
显示对所分析的类和方法的状态表示。
插桩详情
显示对所分析的类和方法的插桩详情。
点击具体方法实例,可以查看“调用关系树”和“热点统计”,可通过按钮进行切换。
图5 调用关系树
图6 热点统计