Golang Go语言中pprof heap的信息该怎么读
0: 0 [1: 16] @ 0xa038ff 0x90886e 0x90b1fa 0x713655 0x710ef1 0x70f7a3 0x55e1cf 0x4660d1
# 0xa038fe crypto/x509/pkix.(*Name).FillFromRDNSequence+0x44e /usr/local/go/src/crypto/x509/pkix/pkix.go:84
# 0x90886d crypto/x509.parseCertificate+0x44d /usr/local/go/src/crypto/x509/x509.go:966
# 0x90b1f9 crypto/x509.ParseCertificate+0x139 /usr/local/go/src/crypto/x509/x509.go:1201
# 0x713654 crypto/tls.(*clientHandshakeState).doFullHandshake+0x1db4 /usr/local/go/src/crypto/tls/handshake_client.go:278
# 0x710ef0 crypto/tls.(*Conn).clientHandshake+0xfd0 /usr/local/go/src/crypto/tls/handshake_client.go:228
# 0x70f7a2 crypto/tls.(*Conn).Handshake+0xd2 /usr/local/go/src/crypto/tls/conn.go:1232
# 0x55e1ce net/http.(*Transport).dialConn.func3+0x2e /usr/local/go/src/net/http/transport.go:1028
这是 debug/pprof/heap 里面拿出来的一段
第一行的第一个 0 我个人觉得是调用这一段的 goroutine 的数量,然后后面的 0 [1:16] 我就猜不出是啥了,求指导
Golang Go语言中pprof heap的信息该怎么读
更多关于Golang Go语言中pprof heap的信息该怎么读的实战教程也可以访问 https://www.itying.com/category-94-b0.html
试试用工具读
https://godoc.org/net/http/pprof
go tool pprof http://localhost:6060/debug/pprof/heap
更多关于Golang Go语言中pprof heap的信息该怎么读的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我现在好像碰到的是 memory leak ,症状是直接看 localhost/debug/pprof/的话,里面 heap 的数量在缓慢增长中。有用 tool 去看,但每次 top 的结果没有发现增长的东西。所以现在想看看这个 heap 的格式是啥,可以手动查一下多了哪些东西。
在Go语言中,pprof
是一个强大的性能分析工具,它能够帮助你诊断程序中的性能瓶颈。对于堆内存(heap)的分析,pprof
提供了详细的内存使用信息,帮助你找出内存泄漏和不必要的内存分配。
要读取 pprof heap
的信息,你通常需要按照以下步骤进行:
-
启用 pprof:在你的 Go 程序中,你需要导入
net/http/pprof
包,并在你的 HTTP 服务中注册pprof
的路由。 -
触发 heap profile:通过向
/debug/pprof/heap
发送请求(通常是 GET 请求),你可以触发堆内存的分析,并获取一个包含堆内存使用信息的 profile 文件。 -
解析 profile 文件:你可以使用
go tool pprof
命令来解析这个 profile 文件。例如,go tool pprof http://localhost:6060/debug/pprof/heap
会启动一个交互式界面,你可以在其中查看内存使用的详细信息。 -
分析数据:在
pprof
的交互式界面中,你可以使用top
、list
、web
等命令来查看内存使用最多的函数、代码行以及可视化的内存使用图。
通过这些步骤,你可以深入了解你的 Go 程序在堆内存使用方面的表现,并找出可能的性能瓶颈或内存泄漏。记住,pprof
是一个强大的工具,但正确使用和理解它的输出需要一定的经验和知识。如果你刚开始使用 pprof
,建议多查阅官方文档和教程。