You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google pprof新版火焰图在Mac上全呈粉色,是否属正常现象?

问题

在Mac OS 10设备上,Google pprof中的「新版」火焰图呈现统一的粉色。这是预期现象吗?它不如旧版火焰图美观,怀疑是本地配置存在问题。

示例代码

package main

import (
    "os"
    "runtime/pprof"
    "time"
)

func main() {
    // 创建CPU性能分析文件
    f, err := os.Create("cpu.pprof")
    if err != nil {
        panic(err)
    }
    defer f.Close()

    // 启动CPU性能分析
    pprof.StartCPUProfile(f)
    defer pprof.StopCPUProfile()

    // 模拟工作负载
    for i := 0; i < 100; i++ {
        Foo()
        Bar()
    }
}

func Foo() {
    time.Sleep(50 * time.Millisecond)
}

func Bar() {
    time.Sleep(100 * time.Millisecond)
}

操作步骤

go run main.go
go tool pprof -http=:8080 cpu.pprof

在pprof Web界面左上角的下拉菜单中,可选择「Flame Graph」(旧版)和「Flame Graph (new)」(新版):

  • 旧版样式:旧版橙色火焰图
  • 新版样式:新版粉色火焰图

版本信息

$ go version
go version go1.21.1 darwin/arm64
$ dot -V
dot - graphviz version 9.0.0 (20230911.1827)

回答

这不是本地配置问题,新版火焰图的统一粉色是预期设计。

pprof的新版火焰图采用了和旧版不同的配色逻辑:旧版会给不同函数、调用层级分配多彩颜色,而新版默认使用单一粉色调,仅通过颜色深浅区分函数的CPU耗时占比——颜色越深,代表该函数占用的CPU时间比例越高。

如果偏好旧版的多彩样式,有两个可选方案:

  1. 继续使用旧版的「Flame Graph」选项,当前Go版本中该选项仍保留可用;
  2. 导出pprof数据,使用Brendan Gregg的原版火焰图生成脚本flamegraph.pl重新生成,该工具支持自定义配色方案。

Go 1.21引入的新版火焰图主要是为了优化渲染性能和逻辑,并非配置错误,你可以根据使用习惯自由选择样式。


内容的提问来源于stack exchange,提问作者landau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:13:31