diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-05-22 11:42:56 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-05-22 11:42:56 -0400 |
commit | 6a1d7d2fe69c29ec08d498d30721995f58fadafc (patch) | |
tree | 454996ea3ecf0aef883243bb44a787daa8369e94 | |
parent | 51692a582543f0182dc335df3fe89a5a08b293e6 (diff) |
Add go profiling CLI flag
-rw-r--r-- | main.go | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -5,14 +5,17 @@ import ( "fmt" "github.com/golang/protobuf/proto" "github.com/ry/v8worker2" + "log" "net/url" "os" "path" + "runtime/pprof" ) var flagReload = flag.Bool("reload", false, "Reload cached remote source code.") var flagV8Options = flag.Bool("v8-options", false, "Print V8 command line options.") var flagDebug = flag.Bool("debug", false, "Enable debug output.") +var flagGoProf = flag.String("goprof", "", "Write golang cpu profile to file.") var DenoDir string var CompileDir string @@ -53,6 +56,17 @@ func main() { } args = v8worker2.SetFlags(args) + // Maybe start Golang CPU profiler. + // Use --prof for profiling JS. + if *flagGoProf != "" { + f, err := os.Create(*flagGoProf) + if err != nil { + log.Fatal(err) + } + pprof.StartCPUProfile(f) + defer pprof.StopCPUProfile() + } + createDirs() createWorker() |