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:
- First, we instantiate our package and add all of our imports:
import ( "fmt" "io" "net/http" _ "net/http/pprof" "time")
- 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 ...