pprof.go 504 B

1234567891011121314151617181920212223242526272829303132333435
  1. //go:build linux || darwin
  2. package libbox
  3. import (
  4. "net"
  5. "net/http"
  6. _ "net/http/pprof"
  7. "strconv"
  8. )
  9. type PProfServer struct {
  10. server *http.Server
  11. }
  12. func NewPProfServer(port int) *PProfServer {
  13. return &PProfServer{
  14. &http.Server{
  15. Addr: ":" + strconv.Itoa(port),
  16. },
  17. }
  18. }
  19. func (s *PProfServer) Start() error {
  20. ln, err := net.Listen("tcp", s.server.Addr)
  21. if err != nil {
  22. return err
  23. }
  24. go s.server.Serve(ln)
  25. return nil
  26. }
  27. func (s *PProfServer) Close() error {
  28. return s.server.Close()
  29. }