in benchmark/benchclient/main.go [46:96]
func main() {
flag.Parse()
opts := []benchmark.Option{
benchmark.WithServiceName(*serviceName),
benchmark.WithTimeout(*timeout),
benchmark.WithRequestSize(*requestSize),
benchmark.WithNumClients(*numClients),
}
if *noLibrary {
opts = append(opts, benchmark.WithNoLibrary())
}
client := benchmark.NewClient(flag.Args(), opts...)
fmt.Println("bench-client started")
rdr := bufio.NewScanner(os.Stdin)
for rdr.Scan() {
line := rdr.Text()
parts := strings.Split(line, " ")
var n int
var err error
if len(parts) >= 2 {
n, err = strconv.Atoi(parts[1])
if err != nil {
log.Fatalf("unrecognized number %q: %v", parts[1], err)
}
}
switch cmd := parts[0]; cmd {
case "warmup":
if err := client.Warmup(); err != nil {
log.Fatalf("warmup failed: %v", err)
}
fmt.Println("success")
continue
case "rcall":
makeCalls(n, client.RawCall)
case "tcall":
makeCalls(n, client.ThriftCall)
case "quit":
return
default:
log.Fatalf("unrecognized command: %v", line)
}
}
if err := rdr.Err(); err != nil {
log.Fatalf("Reader failed: %v", err)
}
}