Browse Source

added profiling

tags/v1.0.0
Remco 8 years ago
parent
commit
5061fb96f5
2 changed files with 45 additions and 2 deletions
  1. +1
    -1
      Dockerfile
  2. +44
    -1
      transfersh-server/main.go

+ 1
- 1
Dockerfile View File

@@ -15,4 +15,4 @@ RUN go install .

ENTRYPOINT ["/go/bin/app", "--port", "8080"]

EXPOSE 8080
EXPOSE 8080 6060

+ 44
- 1
transfersh-server/main.go View File

@@ -35,11 +35,17 @@ import (
"net/http"
"net/url"
"os"
"os/signal"
"runtime"
"syscall"
"time"

"github.com/PuerkitoBio/ghost/handlers"
"github.com/gorilla/mux"

"github.com/pkg/profile"

_ "net/http/pprof"
)

const SERVER_INFO = "transfer.sh"
@@ -79,6 +85,30 @@ func main() {
runtime.GOMAXPROCS(nCPU)
fmt.Println("Number of CPUs: ", nCPU)

var profiler interface {
Stop()
} = nil

profiler = profile.Start(profile.CPUProfile, profile.ProfilePath("."), profile.NoShutdownHook)
/*
if c.GlobalBool("cpu-profile") {
log.Info("CPU profiler started.")
profiler = profile.Start(profile.CPUProfile, profile.ProfilePath("."), profile.NoShutdownHook)
} else if c.GlobalBool("mem-profile") {
log.Info("Memory profiler started.")
profiler = profile.Start(profile.MemProfile, profile.ProfilePath("."), profile.NoShutdownHook)
}

if c.GlobalBool("profiler") {
log.Info("Profiler listening.")

}
*/

go func() {
http.ListenAndServe(":6060", nil)
}()

r := mux.NewRouter()

r.PathPrefix("/scripts/").Methods("GET").Handler(http.FileServer(http.Dir("./static/")))
@@ -178,6 +208,19 @@ func main() {
Handler: handlers.PanicHandler(LoveHandler(RedirectHandler(handlers.LogHandler(r, handlers.NewLogOptions(log.Printf, "_default_")))), nil),
}

log.Panic(s.ListenAndServe())
go func() {
log.Panic(s.ListenAndServe())
}()

term := make(chan os.Signal, 1)
signal.Notify(term, os.Interrupt)
signal.Notify(term, syscall.SIGTERM)

<-term

if profiler != nil {
profiler.Stop()
}

log.Printf("Server stopped.")
}

Loading…
Cancel
Save