关于golang cpu性能分析


本文摘自php中文网,作者藏色散人,侵删。

下面由golang教程栏目给大家介绍golang cpu性能分析,希望对需要的朋友有所帮助!

一、分析程序的运行时间

(1)time指令(linux系统下)

1

time go run a.go

real:从程序开始到结束,实际上度过的时间

user:程序在用户态度过的时间

sys:程序在内核度过的时间

一般情况下,real>=user+sys

(2) /usr/bin/time 指令(linux系统下)

1

/usr/bin/time -v go run a.go

该指令下 可以看到 cpu占用率、 内存使用情况、 进程切换情况 、文件系统io、socket情况

二.golang下cpu性能分析

(1)在程序中引入 _ "net/http/pprof" ,并开启pprof监听

1

import _

1

http.ListenAndServe("0.0.0.0:10000", nil)

1

程序结束

通过浏览器查看 CPU的信息和状态

1

http://127.0.0.1:10000/debug/pprof

注意,等程序运??定时间,再点击profile?件?成(?少是30s)

(2)使用pprof

1

go tool pprof [binary] [profile] //binary二进制文件 profile 要分析的文件

1

top //查看当前profile文件的cpu使用率

flat 该函数?身代码的执?时?

flat% 该函数?身代码的执?时?占?CPU的耗时百分?

cum 代表的是该函数?身代码+所有调?的函数的执?时?

cum% 代表的是该函数?身代码+所有调?的函数的执?时?,占?CPU的总耗时百分?

sum% 每??的flat%与上?所有?的flat%总和

(3)go tool pprof profile文件

启动要调试的程序,在另一个终端执行 go tool pprof http://localhost:10000/debug/pprof/profile?seconds=60

(4)可视化结构图

1

先在终端运行 go tool pprof [binary] [profile] ,然后输入web,浏览器会弹出一个可视化的图片。

更多相关技术文章,请访问go语言教程栏目!

以上就是关于golang cpu性能分析的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

go关于tpl文件无法读取域中数据{{$.name}}

go后offer之路上的那些真相

golang中如何正确地使用database/sql包访问数据库

go高级进阶:goroutine的创建、休眠与恢复

go之旅(五)- 基本类型

golang和erlang区别

golang cgo是什么

golang】make和new区别,append

教你用golang实现直播和点播功能

kotlin coroutines vs goroutines

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...