3 changed files with 55 additions and 23 deletions
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
package main |
||||
|
||||
import ( |
||||
"net" |
||||
"net/http" |
||||
_ "net/http/pprof" |
||||
) |
||||
|
||||
const ( |
||||
pprofAddress = ":9998" |
||||
) |
||||
|
||||
type pprof struct { |
||||
listener net.Listener |
||||
server *http.Server |
||||
} |
||||
|
||||
func newPprof(p *program) (*pprof, error) { |
||||
listener, err := net.Listen("tcp", pprofAddress) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
|
||||
pp := &pprof{ |
||||
listener: listener, |
||||
} |
||||
|
||||
pp.server = &http.Server{ |
||||
Handler: http.DefaultServeMux, |
||||
} |
||||
|
||||
p.log("[pprof] opened on " + pprofAddress) |
||||
return pp, nil |
||||
} |
||||
|
||||
func (pp *pprof) run() { |
||||
err := pp.server.Serve(pp.listener) |
||||
if err != http.ErrServerClosed { |
||||
panic(err) |
||||
} |
||||
} |
Loading…
Reference in new issue