通过交互式终端使用:
- go tool pprof -seconds 30 http://127.0.0.1:9003/debug/pprof/profile
$ go tool pprof -seconds 30 http://127.0.0.1:9003/debug/pprof/profile
Fetching profile over HTTP from http://127.0.0.1:9003/debug/pprof/profile?seconds=30
Please wait... (30s)
Saved profile in C:\Users\Administrator\pprof\pprof.samples.cpu.003.pb.gz
Type: cpu
Time: Jul 8, 2021 at 9:50am (CST)
Duration: 30.08s, Total samples = 1.79s ( 5.95%)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) web
(pprof) top 10
Showing nodes accounting for 1270ms, 70.95% of 1790ms total
Showing top 10 nodes out of 232
flat flat% sum% cum cum%
580ms 32.40% 32.40% 580ms 32.40% runtime.cgocall
150ms 8.38% 40.78% 160ms 8.94% runtime.stdcall6
90ms 5.03% 45.81% 90ms 5.03% runtime.memmove
90ms 5.03% 50.84% 90ms 5.03% runtime.stdcall1
80ms 4.47% 55.31% 80ms 4.47% runtime.procyield
80ms 4.47% 59.78% 150ms 8.38% runtime.selectgo
70ms 3.91% 63.69% 70ms 3.91% runtime.memclrNoHeapPointers
60ms 3.35% 67.04% 370ms 20.67% runtime.findrunnable
40ms 2.23% 69.27% 560ms 31.28% runtime.mcall
30ms 1.68% 70.95% 210ms 11.73% github.com/suiyunonghen/DxCommonLib.
- go tool pprof -inuse_space -seconds 30 http://127.0.0.1:8080/debug/pprof/heap命令连接到进程中 查看正在使用的一些内存相关信息,此时我们得到一个可以交互的命令行
$ go tool pprof -inuse_space http://127.0.0.1:9003/debug/pprof/heap
Fetching profile over HTTP from http://127.0.0.1:9003/debug/pprof/heap
Saved profile in C:\Users\Administrator\pprof\pprof.alloc_objects.alloc_space.inuse_objects.inuse_space.005.pb.gz
Type: inuse_space
Time: Jul 7, 2021 at 3:10pm (CST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top 5
Showing nodes accounting for 9129.86kB, 89.91% of 10154.02kB total
Showing top 5 nodes out of 57
flat flat% sum% cum cum%
6778.88kB 66.76% 66.76% 6778.88kB 66.76% golang.org/x/net/webdav.(*memFile).Write
809.97kB 7.98% 74.74% 809.97kB 7.98% bytes.makeSlice
514.38kB 5.07% 79.80% 514.38kB 5.07% github.com/360EntSecGroup-Skylar/excelize/v2.init
513.31kB 5.06% 84.86% 513.31kB 5.06% regexp.makeOnePass.func1
513.31kB 5.06% 89.91% 513.31kB 5.06% regexp/syntax.(*compiler).inst
(pprof)
- go tool pprof -alloc_space -seconds 30 http://127.0.0.1:8080/debug/pprof/heap命令链接程序来查看 内存对象分配的相关情况。然后输入top来查看累积分配内存较多的一些函数调用:
$ go tool pprof -alloc_space http://127.0.0.1:9003/debug/pprof/heap
Fetching profile over HTTP from http://127.0.0.1:9003/debug/pprof/heap
Saved profile in C:\Users\Administrator\pprof\pprof.alloc_objects.alloc_space.inuse_objects.inuse_space.007.pb.gz
Type: alloc_space
Time: Jul 7, 2021 at 3:25pm (CST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top 3
Showing nodes accounting for 10021.73MB, 99.28% of 10094.23MB total
Dropped 215 nodes (cum <= 50.47MB)
Showing top 3 nodes out of 40
flat flat% sum% cum cum%
5528.48MB 54.77% 54.77% 5528.48MB 54.77% io.ReadAll
3595.60MB 35.62% 90.39% 3595.60MB 35.62% github.com/minio/minio-go/v7.Client.putObjectMultipartStreamFromReadAt
897.65MB 8.89% 99.28% 897.65MB 8.89% bytes.makeSlice
(pprof)
版权声明:本文为justinsun221原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。