简体   繁体   中英

does anybody have a simple pprof use on a go-executable?

I have looked at the article about profiling go programs , and I simple do not understand it. Do someone have a simple code example were the performance of code snippet is logged in text file by a profile-"object"?

Here are the commands I use for a simple CPU and memory profiling to get you started.

Let's say you made a benchmark function like this :

File something_test.go :

func BenchmarkProfileMe(b *testing.B) {
 // execute the significant portion of the code you want to profile b.N times
}

In a shell script:

# -test XXX is a trick so you don't trigger other tests by asking a non existent specific test called literally XXX
# you can adapt the benchtime depending on the type of code you want to profile.

go test -v -bench ProfileMe -test.run XXX -cpuprofile cpu.pprof -memprofile mem.pprof -benchtime 10s

go tool pprof --text ./something.test cpu.pprof           ## To get a CPU profile per function

go tool pprof --text ./something.test cpu.pprof --lines   ## To get a CPU profile per line

go tool pprof --text ./something.test mem.pprof           ## To get the memory profile

It will present you the hottests spots in each cases on the console.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM