首页 > 解决方案 > 如何在 Go 中分析大堆栈

问题描述

我有一个玩具围棋问题,我正在努力尝试了解有关围棋分析的更多信息。如果我正确读取配置文件,我的程序将在 runtime.morestack 中花费 43% 的累积 CPU 时间。我的理解是,只有当 goroutine 的堆栈超过为其分配的数量时,才应该调用 runtime.morestack。据我所知,我的程序的任何部分都不应该使用大量的堆栈空间。有什么方法可以查看我的堆栈有多大?(每个堆栈帧的大小和变量都有哪些?

我已经运行pprof.Lookup("goroutine").WriteTo(f, 0)了,但看起来这并没有报告堆栈帧的大小或其内容。

标签: goprofiling

解决方案


推荐阅读