mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 10:58:57 +00:00
47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
// Copyright (C) 2015 The Syncthing Authors.
|
|
//
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
// You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
// +build ignore
|
|
|
|
// Neatly format benchmarking output which otherwise looks like crap.
|
|
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"regexp"
|
|
"strings"
|
|
"text/tabwriter"
|
|
)
|
|
|
|
var (
|
|
benchRe = regexp.MustCompile(`^(Bench[^\s]+)\s+(\d+)\s+(\d+ ns/op)\s*(\d+ B/op)?\s*(\d+ allocs/op)?`)
|
|
)
|
|
|
|
func main() {
|
|
tw := tabwriter.NewWriter(os.Stdout, 1, 1, 1, ' ', 0)
|
|
br := bufio.NewScanner(os.Stdin)
|
|
n := 0
|
|
|
|
for br.Scan() {
|
|
line := br.Text()
|
|
|
|
if match := benchRe.FindStringSubmatch(line); match != nil {
|
|
n++
|
|
for i := range match[2:] {
|
|
match[2+i] = fmt.Sprintf("%16s", match[2+i])
|
|
}
|
|
tw.Write([]byte(strings.Join(match[1:], "\t") + "\n"))
|
|
} else if n > 0 && strings.HasPrefix(line, "ok") {
|
|
n = 0
|
|
tw.Flush()
|
|
fmt.Printf("%s\n\n", line)
|
|
}
|
|
}
|
|
tw.Flush()
|
|
}
|