net: make IPString benchmarks more representative.

We were spending more time in duffcopy than in the String method.
Avoid creating a copy of test struct to make benchmark measure performance of
String() itself.

IPString/IPv4-8     113ns ± 0%      57ns ± 1%  -49.83%  (p=0.000 n=8+10)
IPString/IPv6-8     972ns ± 1%     915ns ± 1%   -5.88%  (p=0.000 n=9+10)

Change-Id: I5ceff2caa1b8288c43f0cf6c6b3809ca523af1fa
Reviewed-on: https://go-review.googlesource.com/111881
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Ilya Tocar 2018-05-07 16:18:11 -05:00 committed by Brad Fitzpatrick
parent b1df8d6ffa
commit 406886b51f

View File

@ -129,7 +129,7 @@ func TestMarshalEmptyIP(t *testing.T) {
}
}
var ipStringTests = []struct {
var ipStringTests = []*struct {
in IP // see RFC 791 and RFC 4291
str string // see RFC 791, RFC 4291 and RFC 5952
byt []byte