internal/deepprint: stop printing struct field names

The struct field names don't change within a single run,
so they are irrelevant. Use the field index instead.

name    old time/op    new time/op    delta
Hash-8    6.52µs ± 0%    6.64µs ± 0%   +1.91%  (p=0.000 n=6+9)

name    old alloc/op   new alloc/op   delta
Hash-8    1.67kB ± 0%    1.54kB ± 0%   -7.66%  (p=0.000 n=10+10)

name    old allocs/op  new allocs/op  delta
Hash-8      53.0 ± 0%      37.0 ± 0%  -30.19%  (p=0.000 n=10+10)

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
pull/1908/head
Josh Bleecher Snyder 4 years ago committed by Josh Bleecher Snyder
parent dfa0c90955
commit 8368bac847

@ -133,11 +133,8 @@ func print(w *bufio.Writer, v reflect.Value, visited map[uintptr]bool) {
return return
case reflect.Struct: case reflect.Struct:
w.WriteString("struct{\n") w.WriteString("struct{\n")
t := v.Type()
for i, n := 0, v.NumField(); i < n; i++ { for i, n := 0, v.NumField(); i < n; i++ {
sf := t.Field(i) fmt.Fprintf(w, " [%d]: ", i)
w.WriteString(sf.Name)
w.WriteString(": ")
print(w, v.Field(i), visited) print(w, v.Field(i), visited)
w.WriteString("\n") w.WriteString("\n")
} }

Loading…
Cancel
Save