golang profile with pprof,如何获得命中数而不是持续时间?

如何获得命中数,例如:


(pprof) top

Total: 2525 samples

     298  11.8%  11.8%      345  13.7% runtime.mapaccess1_fast64

     268  10.6%  22.4%     2124  84.1% main.FindLoops

不,持续时间如下:


(pprof) top

2220ms of 3080ms total (72.08%)

Dropped 72 nodes (cum <= 15.40ms)

Showing top 10 nodes out of 111 (cum >= 60ms)

      flat  flat%   sum%        cum   cum%

    1340ms 43.51% 43.51%     1410ms 45.78%  runtime.cgocall_errno

env:我使用的是 golang1.4,添加以下代码。


defer pprof.StopCPUProfile()

f, err := os.Create("innercpu.pprof")

if err != nil {

    fmt.Println("Error: ", err)

}

pprof.StartCPUProfile(f)


SMILET
浏览 192回答 1
1回答

森栏

您可以使用go tool pprof -callgrind -output callgrind.out innercpu.pprof从收集的分析数据中生成 callgrind 数据。然后您可以使用qcachegrind/kcachegrind进行可视化。它将显示呼叫计数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go