Make pprof optional to halve the binary size

This commit is contained in:
Qian Wang 2019-01-21 21:17:26 +00:00
parent cb07e446b6
commit 3ee868da6d
4 changed files with 33 additions and 8 deletions

View File

@ -16,6 +16,11 @@ server:
go build -ldflags "-X main.version=${version}" ./cmd/ck-server
mv ck-server* ./build
server_pprof:
mkdir -p build
go build -ldflags "-X main.version=${version}" -tags pprof ./cmd/ck-server
mv ck-server* ./build
install:
mv build/ck-* /usr/local/bin

View File

@ -8,10 +8,7 @@ import (
"io"
"log"
"net"
"net/http"
_ "net/http/pprof"
"os"
"runtime"
"strings"
"time"
@ -237,11 +234,7 @@ func main() {
}
if *pprofAddr != "" {
runtime.SetBlockProfileRate(5)
go func() {
log.Println(http.ListenAndServe(*pprofAddr, nil))
}()
log.Println("pprof listening on " + *pprofAddr)
startPprof(*pprofAddr)
}
if *localAddr == "" {

9
cmd/ck-server/pprof.go Normal file
View File

@ -0,0 +1,9 @@
// +build !pprof
package main
import "log"
func startPprof(x string) {
log.Println("pprof not available in release builds to reduce binary size")
}

View File

@ -0,0 +1,18 @@
// +build pprof
package main
import (
"log"
"net/http"
_ "net/http/pprof"
"runtime"
)
func startPprof(pprofAddr string) {
runtime.SetBlockProfileRate(5)
go func() {
log.Println(http.ListenAndServe(pprofAddr, nil))
}()
log.Println("pprof listening on " + pprofAddr)
}