diff options
author | bodqhrohro <bodqhrohro@gmail.com> | 2020-01-13 18:31:28 +0300 |
---|---|---|
committer | bodqhrohro <bodqhrohro@gmail.com> | 2020-01-13 18:31:28 +0300 |
commit | cfc9e1d52292b69260ba38d8652b8a5f67787a67 (patch) | |
tree | 626667a9595d1d5489f5ccdbf44e846044d72e6c | |
parent | 48ac4fdcef1169bba42593b723a0ef0a15afd5e1 (diff) |
Add pprof
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | telegabber.go | 13 |
2 files changed, 17 insertions, 0 deletions
@@ -72,6 +72,10 @@ It is good idea to obtain Telegram API ID from [**https://my.telegram.org**](htt ... ``` +### Arguments ### + +* `--profiling-port=xxxx`: starts the pprof server on port `xxxx`. Access is limited to localhost. + ### How to receive files from Telegram ### First of all, you need to set up web server that will serve some directory in your filesystem. diff --git a/telegabber.go b/telegabber.go index 2752163..14b3b3d 100644 --- a/telegabber.go +++ b/telegabber.go @@ -1,6 +1,10 @@ package main import ( + "flag" + "fmt" + "net/http" + _ "net/http/pprof" "os" "os/signal" @@ -25,6 +29,15 @@ var cleanupDone chan struct{} var sigintChannel chan os.Signal func main() { + var profilingPort = flag.Int("profiling-port", 0, "The port for pprof server") + flag.Parse() + + if *profilingPort > 0 { + go func() { + log.Println(http.ListenAndServe(fmt.Sprintf("localhost:%v", *profilingPort), nil)) + }() + } + cleanupDone = make(chan struct{}) sigintChannel = make(chan os.Signal, 1) signal.Notify(sigintChannel, os.Interrupt) |