【GoLand教程】GoLand 阻塞分析器

您只能为 Go 测试和基准测试运行阻塞分析器
阻塞分析器向您显示 goroutine 未运行(等待)的时间段。如果您需要查找无缓冲或完整的通道、sync.Mutex
锁或任何其他瓶颈,阻塞分析器可能会很有用。
运行阻塞分析
- 打开_test.go文件。
- 在要分析的函数或方法附近,单击装订线区域中的Run Application图标,然后选择Run <configuration_name> with 'Blocking Profiler'。
解释结果
火焰图
Flame Graph选项卡显示函数调用和 goroutine 未运行(等待)的时间量。每个块代表堆栈中的一个函数。在 Y 轴上,有一个自下而上的堆栈深度。X 轴显示堆栈配置文件,根据每个函数的延迟数(选择了争用)或根据在等待状态中花费的时间(选择了延迟)按升序排序。
在火焰图选项卡中,您可以将鼠标悬停在任何块上以查看详细信息。
, where
9
: 每个地区都有一些延误。75.00% of parent
:属于单个父调用的不同过程之间的百分比。37.50% of all
:程序及其所有被调用者的延迟百分比。
调用树
Call Tree选项卡显示调用树,其中包含每个函数的延迟数量(选择了争用)或处于等待状态的时间(选择了延迟)。它按降序组织数据。要配置和过滤呼叫树视图,请使用演示设置按钮。
方法列表
Method List选项卡显示按许多争用排序的方法列表。Back Traces选项卡显示调用所选方法的位置。Merged Callees选项卡显示从所选方法开始的调用跟踪。