猿问

如何在 go 中获得功能持续时间细分(分析)

更新(2019 年 1 月 24 日):


这个问题是 4 年前关于 Go 1.4 提出的(并且仍然有意见)。从那时起,使用 pprof 进行分析发生了巨大变化。


原问题:


我正在尝试分析我编写的基于 go martini 的服务器,我想分析单个请求,并获得函数的完整细分及其运行时持续时间。我尝试同时使用两者runtime/pprof,net/http/pprof但输出如下所示:


Total: 3 samples

       1  33.3%  33.3%        1  33.3% ExternalCode

       1  33.3%  66.7%        1  33.3% runtime.futex

       1  33.3% 100.0%        2  66.7% syscall.Syscall

Web 视图也不是很有帮助。


我们定期分析另一个程序,输出似乎是我需要的:


20ms of 20ms total (  100%)

      flat  flat%  sum%        cum  cum%

      10ms 50.00% 50.00%     10ms 50.00%  runtime.duffcopy

      10ms 50.00%   100%     10ms 50.00%  runtime.fastrand1

         0     0%   100%     20ms   100%  main.func·004

         0     0%   100%     20ms   100%  main.pruneAlerts

         0     0%   100%     20ms   100%  runtime.memclr

我不知道差异来自哪里。


呼如林
浏览 152回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答