Joe Tsai
|
bc1d0d8eb1
|
reflect: add Value.SetZero
The v.SetZero method is a faster equivalent of v.Set(Zero(v.Type())).
Performance:
Direct CachedZero NewZero
SetZero/Bool 2.20ns ± 0% 8.97ns ± 5% 11.4ns ± 1%
SetZero/Int 3.08ns ± 1% 9.06ns ± 1% 11.5ns ± 0%
SetZero/Uint 2.88ns ± 1% 9.04ns ± 1% 11.7ns ± 5%
SetZero/Float 2.65ns ± 2% 9.05ns ± 1% 11.5ns ± 1%
SetZero/Complex 2.68ns ± 3% 9.31ns ± 1% 11.7ns ± 1%
SetZero/Array 6.69ns ± 4% 9.32ns ± 1% 11.8ns ± 1%
SetZero/Chan 3.31ns ± 1% 6.19ns ± 1% 8.20ns ± 1%
SetZero/Func 3.32ns ± 1% 6.20ns ± 0% 8.24ns ± 1%
SetZero/Interface 2.66ns ± 1% 9.31ns ± 1% 11.8ns ± 1%
SetZero/Map 3.31ns ± 1% 6.21ns ± 2% 8.19ns ± 1%
SetZero/Pointer 3.30ns ± 1% 6.22ns ± 1% 8.17ns ± 1%
SetZero/Slice 2.90ns ± 4% 9.13ns ± 1% 11.6ns ± 1%
SetZero/String 3.11ns ± 1% 9.30ns ± 1% 11.8ns ± 2%
SetZero/Struct 6.37ns ± 1% 9.18ns ± 4% 11.5ns ± 1%
where:
* Direct is measuring Value.SetZero
* CachedZero is measuring Value.Set with a cached Zero value
* NewZero is measuring Value.Set with a new Zero value
Fixes #52376
Change-Id: I793ca723aa97627824c5f5b356b2da30c8e46d71
Reviewed-on: https://go-review.googlesource.com/c/go/+/411476
Auto-Submit: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Dan Kortschak <dan@kortschak.io>
|
2022-08-26 17:15:08 +00:00 |
|