// 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)
} // Create the httprouter
router := httprouter.New()
// Register all handlers
router.GET("/entities/:type/map", h.UseHandler(&h.ApiGetEntitiesMapRequest{}, p)) 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
}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()
}
router.HandlerFunc(http.MethodGet, "/debug/pprof/", pprof.Index)router.HandlerFunc(http.MethodGet, "/debug/pprof/cmdline", pprof.Cmdline)router.HandlerFunc(http.MethodGet, "/debug/pprof/profile", pprof.Profile)router.HandlerFunc(http.MethodGet, "/debug/pprof/symbol", pprof.Symbol)router.HandlerFunc(http.MethodGet, "/debug/pprof/trace", pprof.Trace)router.Handler(http.MethodGet, "/debug/pprof/goroutine", pprof.Handler("goroutine"))router.Handler(http.MethodGet, "/debug/pprof/heap", pprof.Handler("heap"))router.Handler(http.MethodGet,"/debug/pprof/threadcreate", pprof.Handler("threadcreate"))router.Handler(http.MethodGet,"/debug/pprof/block", pprof.Handler("block"))