Briefing on CPU profiling

Let's perform some example profiling on a simple Go program in order to understand how the profiler works. We will create a sample program with a couple of sleep parameters in order to see the timings for different function calls:

  1. First, we instantiate our package and add all of our imports:
import (    "fmt"    "io"    "net/http"    _ "net/http/pprof"    "time")
  1. Next, in our main function, we have an HTTP handler that has two sleep functions that are called as part of the handler:
func main() {    Handler := func(w http.ResponseWriter, req *http.Request) {        sleep(5)        sleep(10)        io.WriteString(w, "Memory Management Test")    }    http.HandleFunc("/", Handler)    http.ListenAndServe(":1234", nil)}

Our sleep function just sleeps for a particular ...

Get Hands-On High Performance with Go now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.