X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=examples%2Fperf-bench%2Fperf-bench.go;h=81d183cab23b8554be4831efc9db8f30c1fb18d0;hb=280b1c6c83b676ef4e592f4ecf60cb5b54b6a753;hp=f48c154a342ac1b46b63a7cc4b7edbaa813ef400;hpb=f049390060630c0085fe4ad683c83a4a14a47ffb;p=govpp.git diff --git a/examples/perf-bench/perf-bench.go b/examples/perf-bench/perf-bench.go index f48c154..81d183c 100644 --- a/examples/perf-bench/perf-bench.go +++ b/examples/perf-bench/perf-bench.go @@ -20,6 +20,7 @@ import ( "flag" "fmt" "log" + "os" "time" "github.com/pkg/profile" @@ -39,14 +40,14 @@ const ( func main() { // parse optional flags - var sync, prof bool + var sync bool var cnt int - var sock string + var sock, prof string flag.BoolVar(&sync, "sync", false, "run synchronous perf test") - flag.StringVar(&sock, "socket", socketclient.DefaultSocketName, "Path to VPP API socket") - flag.String("socket", statsclient.DefaultSocketName, "Path to VPP stats socket") + flag.StringVar(&sock, "api-socket", socketclient.DefaultSocketName, "Path to VPP API socket") + flag.String("stats-socket", statsclient.DefaultSocketName, "Path to VPP stats socket") flag.IntVar(&cnt, "count", 0, "count of requests to be sent to VPP") - flag.BoolVar(&prof, "prof", false, "generate profile data") + flag.StringVar(&prof, "prof", "", "enable profiling mode [mem, cpu]") flag.Parse() if cnt == 0 { @@ -58,8 +59,16 @@ func main() { } } - if prof { - defer profile.Start().Stop() + switch prof { + case "mem": + defer profile.Start(profile.MemProfile, profile.MemProfileRate(1)).Stop() + case "cpu": + defer profile.Start(profile.CPUProfile).Stop() + case "": + default: + fmt.Printf("invalid profiling mode: %q\n", prof) + flag.Usage() + os.Exit(1) } a := socketclient.NewVppClient(sock)