On Thursday, March 2, 2023 at 2:03:22 AM UTC-5 Jochen Voss wrote:

Hi Peter,

Thanks a lot, giving the "-alloc_space" option makes all the difference!  
With this option, it also works for me.

I wonder whether it meant to be the way that you have to give this option.  
Maybe something broke?  In the blog entry https://go.dev/blog/pprof they 
didn't need this option to get the profile output.


The Go blog post at https://go.dev/blog/pprof was written in 2011; it is 
now 2023. For up-to-date information, see the latest pprof package 
documentation at https://pkg.go.dev/runtime/pprof@latest.

The pprof package documentation is incorrect: 

To add equivalent [go test] profiling support to a standalone program, add 
code like the following to your main function:

    // ...
    runtime.GC() // get up-to-date statistics
    if err := pprof.WriteHeapProfile(f); err != nil {
        log.Fatal("could not write memory profile: ", err)
    }
    // ...

To obtain equivalent results, replace the above code with:

    // ...
    runtime.GC() // get up-to-date statistics
    if allocs := pprof.Lookup("allocs"); allocs == nil {
        log.Fatal("could not lookup memory profile: ")
    } else if err := allocs.WriteTo(f, 0); err != nil {
        log.Fatal("could not write memory profile: ", err)
    }
    // ...

For your example,

yyy.go: https://go.dev/play/p/epy4c3et1Io

$ go build yyy.go && ./yyy
$ go tool pprof mem.prof
File: yyy
Type: alloc_space
Time: Mar 2, 2023 at 10:02am (EST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top
Showing nodes accounting for 6975.42MB, 98.93% of 7050.77MB total
Dropped 62 nodes (cum <= 35.25MB)
Showing top 10 nodes out of 18
      flat  flat%   sum%        cum   cum%
 3564.88MB 50.56% 50.56%  3564.88MB 50.56% 
 golang.org/x/exp/slices.Insert[...] (inline)
 3122.14MB 44.28% 94.84%  3122.14MB 44.28% 
 seehuhn.de/go/layout.(*Skip).Minus
  117.01MB  1.66% 96.50%   117.01MB  1.66% 
 seehuhn.de/go/layout.(*Skip).Clone (inline)
  115.51MB  1.64% 98.14%  6919.54MB 98.14% 
 seehuhn.de/go/layout.(*knuthPlassLineBreaker).Run
   52.89MB  0.75% 98.89%    65.63MB  0.93%  compress/flate.NewWriter
    2.50MB 0.035% 98.92%  6926.54MB 98.24% 
 seehuhn.de/go/layout.(*Engine).EndParagraph
    0.50MB 0.0071% 98.93%  7050.27MB   100%  main.main
         0     0% 98.93%    65.63MB  0.93%  compress/flate.NewWriterDict
         0     0% 98.93%    65.63MB  0.93%  compress/zlib.(*Writer).Write
         0     0% 98.93%    65.63MB  0.93% 
 compress/zlib.(*Writer).writeHeader
(pprof) quit
$ 

Peter

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/01d529ad-4a05-470f-b9d8-802e308972dbn%40googlegroups.com.

Reply via email to