dqenv99518 2014-06-02 13:03
浏览 17
已采纳

分析go程序

I try to profile my go library, but I am stuck with the following output:

(pprof) top10
Total: 884 samples
     884 100.0% 100.0%      884 100.0% runtime.mach_semaphore_wait
       0   0.0% 100.0%      884 100.0% System

Which is not really helpful. My library reads a zip-file and parses the enclosed XML files (xlsx). When I move the profiling functions inside the lowest part of my library (where the actual xml decoding takes place), the output is not much 'better':

(pprof) top10   
Total: 884 samples
     884 100.0% 100.0%      884 100.0% fmt.(*fmt).formatFloat
       0   0.0% 100.0%      884 100.0% runtime.schedtrace

I know that this is a very vague question, but perhaps there are some helpful hints without having to provide the whole source code?

I have taken the profiler call from the golang blog entry and call the profiler with go tool pprof main profile after building main.go.

f, err := os.Create("profile")
if err != nil {
    log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
    ... my source code here
  • 写回答

1条回答 默认 最新

  • doudinghan8319 2014-06-02 13:12
    关注

    It's a known bug that profiling doesn't work on Mac OS X. https://code.google.com/p/go/issues/detail?id=6047

    The bug is in the Mac OS X kernel, and Russ Cox has a patch, described here: http://godoc.org/code.google.com/p/rsc/cmd/pprof_mac_fix , but that comes with dire warnings about screwing up your machine. In particular, there's known problems with the patch under Mavericks.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分