Hi Peter, Thanks again for looking into this, and for your help!
You mention that the blog post was long ago. I wonder whether the code to write profile information is covered by the compatibility promise. If so, probably the legacy WriteHeapProfile function could be made to implement the required code to keep this working. Should a bug report be filed to this effect? Similarly, should a bug report be filed about the mistake you found in the pprof package documentation? All the best, Jochen On Thursday, 2 March 2023 at 15:36:24 UTC peterGo wrote: > 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[.. > <http://golang.org/x/exp/slices.Insert%5B..>.] (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/a06065fb-ae57-4c52-b182-b444e9e32bcdn%40googlegroups.com.