Are you just trying to see how heap allocation can be seen using debug/pprof?
Maybe you're allocating too less. Try to allocate exponentialy. package main import ( "log" "net/http" "time" _ "net/http/pprof" ) func expalloc() { x := make([]int, 0) for i := 0; i < 10; i++ { x = append(x, i) x = append(x, x...) } time.Sleep(10 * time.Second) } func main() { go func() { log.Println(http.ListenAndServe("localhost:6060", nil)) }() expalloc() } Allocations on my machine (reduce 50 to smaller number as the program might go out of memory): <https://lh3.googleusercontent.com/-FqrfDyq6nRI/WiAJLLceTbI/AAAAAAAAKGw/AhU2-Tb-3dkJ9Wihr4iS7xynMq0r6sQCQCLcBGAs/s1600/profile003.png> On Wednesday, 29 November 2017 19:47:11 UTC+5:30, basti skalendudler wrote: > > Does noone have an idea? :( > > Am Montag, 27. November 2017 13:37:43 UTC+1 schrieb basti skalendudler: >> >> The go tool pprof command is interactive, so I thought it is enough type >> 'png' to get the image after the benchmark is run >> >> I tested to start go tool pprof now as well during and after the >> benchmark -> nothing changes >> >> Am Montag, 27. November 2017 04:37:48 UTC+1 schrieb Karan Chaudhary: >>> >>> From the top of my head, shouldn't the benchmark be done when traffic >>> is being sent to the server and not before it is sent? >>> >>> On Sunday, 26 November 2017 00:11:40 UTC+5:30, basti skalendudler wrote: >>>> >>>> Hey guiys, I posted a StackOF question two days ago, but so far nobody >>>> was able to help me! >>>> >>>> I am trying to profile my web server I wrote, but my pprof does not >>>> contain any data about the handler func. >>>> I am using the httprouter package >>>> <https://github.com/julienschmidt/httprouter> by julienschmidt, and >>>> want to simply benchmark one of my handlers and see the pprof profile for >>>> that. For the benchmarking, I am using go-wrk >>>> <https://github.com/tsliwowicz/go-wrk> >>>> >>>> I set up my web server and pprof like this: >>>> >>>> >>>> // Configure the server >>>> server := &http.Server{ >>>> Addr: ":4000", >>>> Handler: router, >>>> } >>>> >>>> >>>> go func() { >>>> log.Println(http.ListenAndServe(":6060", nil)) >>>> }() >>>> >>>> >>>> // Start the server >>>> err = server.ListenAndServe() >>>> if err != nil { >>>> panic(err) >>>> } >>>> >>>> >>>> The router is initialized like this: >>>> >>>> >>>> // Create the httprouter >>>> router := httprouter.New() >>>> // Register all handlers >>>> router.GET("/entities/:type/map", h.UseHandler(&h. >>>> ApiGetEntitiesMapRequest{}, p)) >>>> >>>> >>>> And my handler looks like this: >>>> >>>> >>>> func (req ApiGetEntitiesMapRequest) Handle(r *http.Request, hrp >>>> httprouter.Params, p Params) (interface{}, error) { >>>> test := make([]string, 0) >>>> for i := 0; i < 1000; i++ { >>>> test = append(test, "1") >>>> test = append(test, "2") >>>> // Ensure pprof has some time to collect its data >>>> time.Sleep(10) >>>> } >>>> return test, nil >>>> } >>>> >>>> This handler is just a test, where I dynamically append a lot of >>>> elements to a slice. The reason for that is, I wanted to test whether >>>> these >>>> dynamic allocations are represented in the heap profile of pprof. >>>> >>>> Now, what I did was: >>>> >>>> - Start my server >>>> - execute **go tool pprof http://localhost:6060/debug/pprof/heap** in >>>> my terminal >>>> - then benchmark my handler by executing **go-wrk -no-c -d 5 >>>> http://localhost:4000/entities/object/map** >>>> >>>> The request works and my benchmark also reports everything correctly. >>>> However, when I type **png** in the pprof terminal, I get this graph: >>>> >>>> >>>> <https://lh3.googleusercontent.com/-H5BlDsvkGc8/WhkpNlbAgBI/AAAAAAAABMQ/MagwiySh4F8G5NvT4V4_uTAnHexw0VqBACLcBGAs/s1600/profile001.png> >>>> >>>> >>>> The graph does not contain any information about my handler and the >>>> costly heap allocations I did in my handler. What am I doing wrong? >>>> >>> -- 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. For more options, visit https://groups.google.com/d/optout.