当前位置: 首页 > news >正文

我国政府网站建设现状东莞网站建设优化诊断

我国政府网站建设现状,东莞网站建设优化诊断,电子商务网站建设与管理的重要性,免费word模板网站pprof是Go语言内置的性能分析工具,它可以帮助我们分析程序的CPU使用情况、内存分配等。 pprof 包含两部分: Go语言内置的两个包 net/http/pprof 对 runtime/pprof 的二次封装,一般是服务型应用。比如 web server ,它一直运行。这…

pprof是Go语言内置的性能分析工具,它可以帮助我们分析程序的CPU使用情况、内存分配等。

pprof 包含两部分:

  • Go语言内置的两个包

    1. net/http/pprof

      runtime/pprof 的二次封装,一般是服务型应用。比如 web server ,它一直运行。这个包对提供的 http 服务进行数据采集分析。

    2. runtime/pprof

      采集程序运行数据进行性能分析,一般用于后台工具型应用,这种应用运行一段时间就结束。

  • 性能剖析工具 go tool pprof

性能分析指标

  1. CPU性能分析
  2. 内存(Memory)性能分析
  3. 阻塞(block)性能分析
  4. 锁(mutex)性能分析

内置包应用

runtime/pprof

cpu分析

关键

// 开启 cpu 采集分析:
pprof.StartCPUProfile(w io.Writer)// 停止 cpu 采集分析:
pprof.StopCPUProfile()

demo

package mainimport ("log""os""runtime/pprof"
)func main() {f, err := os.OpenFile("cpu.pprof", os.O_CREATE|os.O_RDWR, 0644)if err != nil {log.Fatalf("Failed to open profile file: %v", err)return}if err = pprof.StartCPUProfile(f); err != nil {log.Fatalf("Failed to start CPU profiling: %v", err)return}defer pprof.StopCPUProfile()// do something
}

内存分析

关键

pprof.WriteHeapProfile(w io.Writer)

demo

func captureHeapProfile(filename string) error {// 打开文件,用于存储堆内存信息file, err := os.Create(filename)if err != nil {return err}defer file.Close()// 写入堆内存信息if err = pprof.WriteHeapProfile(file); err != nil {return err}return nil
}
net/http/pprof

对于服务类型的应用,主要在服务内部匿名引入net/http/pprof包,然后通过HTTP访问pprof页面。
匿名引入方式为:import _ "net/http/pprof"

package mainimport ("fmt""net/http"_ "net/http/pprof"
)func main() {http.HandleFunc("/", hello)err := http.ListenAndServe(":8080", nil)if err != nil {fmt.Println("ListenAndServe Err:", err.Error())return}
}func hello(resp http.ResponseWriter, req *http.Request) {fmt.Fprintln(resp, "Hello World, Are You OK?")
}

浏览器打开 http://localhost:8080/debug/pprof/

如果HTTP服务不是通过http.ListenAndServe(":8080", nil)启动的,需要自己注册pprof路由

net/http/pprof包中,有init函数

func init() {http.HandleFunc("/debug/pprof/", Index)http.HandleFunc("/debug/pprof/cmdline", Cmdline)http.HandleFunc("/debug/pprof/profile", Profile)http.HandleFunc("/debug/pprof/symbol", Symbol)http.HandleFunc("/debug/pprof/trace", Trace)
}

如果使用自定义的ServeMux,则需要增加注册后,才能获取到pprof

// 自己注册这几个函数
r.HandleFunc("/debug/pprof/", pprof.Index)
r.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
r.HandleFunc("/debug/pprof/profile", pprof.Profile)
r.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
r.HandleFunc("/debug/pprof/trace", pprof.Trace)

go tool pprof

命令格式:

pprof <format> [options] [binary] <source>
pprof [options] [binary] <source>
pprof -http [host]:[port] [options] [binary] <source>

想在浏览器查看,需要安装graphviz

web页面模式

go tool pprof -http=:6666 [file_pprof|url_pprof]

go tool pprof -http=:9999 cpu.pprof
go tool pprof -http=:9999 mem.pprof
命令行模式

go tool pprof [file_pprof|url_pprof]

常用:

go tool pprof -http=:9999 cpu.pprof
go tool pprof -http=:9999 /tmp/profile215959616/mem.pprof
go test -bench="Fib$" -cpuprofile=cpu.pprof .
go tool pprof -text cpu.pprof

https://blog.csdn.net/sinat_24985411/article/details/128816228

https://www.cnblogs.com/jiujuan/p/14588185.html

https://github.com/google/pprof/blob/main/doc/README.md

https://pkg.go.dev/runtime/pprof#hdr-Profiling_a_Go_program

https://www.cnblogs.com/jiujuan/p/14588185.html

http://www.ds6.com.cn/news/106329.html

相关文章:

  • 怎么查网站域名备案游戏推广接单平台
  • 自己做网站推广百色seo外包
  • 公司做网站计入那个科目近期的新闻消息
  • 泗洪建设局网站seo网站设计
  • app关键词排名优化深圳优化公司哪家好
  • 香港服务器网站可以做淘宝客吗推广小程序
  • 电子商务网站建设的语言及特点企业软文怎么写
  • wordpress生成站点地图爱站网权重查询
  • 电子商务网站的建设与规划sem营销
  • vps怎么做多个网站邯郸seo推广
  • 怎么做倒计时网站在线建站网页制作网站建设平台
  • 网页设计一张多少钱搜索引擎优化有哪些要点
  • wordpress分页代码太原seo推广
  • 网页设计作业5000字seo网站排名
  • 武汉光谷做网站公司搜索推广营销
  • 金昌市住房和城乡建设局网站关键词是怎么排名的
  • 太原网站seo搜索优化谷歌关键词排名优化
  • jsp动态网站建设代码童程童美少儿编程怎样收费
  • 网站效果湖南网站建设推广
  • 国内网站建设需要多少钱百度商城
  • wordpress修改首页模板文件百度seo优化服务
  • 跨境电商工具类产品的网站搜索推广代运营
  • 河北省建设委员会网站是哪个sem竞价开户
  • 帝国cms 网站地图 自定义北京最新发布信息
  • 品牌网站制作报价表做网站公司
  • 一个新的网站开发语言百度客户端官网
  • 网站的弹窗广告怎么做小程序开发
  • 大型网站开发收费超级外链工具有用吗
  • 广西网站建设费用网络推广应该怎么做啊
  • 微信做的团购网站数据分析软件哪个最好用