]> Cypherpunks repositories - gostls13.git/commit
encoding/gob: avoid pointers to fieldType
authorDaniel Martí <mvdan@mvdan.cc>
Sat, 25 Mar 2023 12:04:59 +0000 (12:04 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Wed, 29 Mar 2023 23:48:11 +0000 (23:48 +0000)
commitf80e270babcddd28e29a52c1cb834ffed427bd8a
tree03eda5945bfb47578ad51c048671406b247fd9be
parent72013c47009d99c5ded7407bf80d90bd8ba95d3e
encoding/gob: avoid pointers to fieldType

fieldType is a struct with only a string and an integer,
so its size will barely be three times that of a pointer.

The indirection doesn't save us any memory or append/grow cost,
but it does cause a significant amount of allocations at init time.

goos: linux
goarch: amd64
pkg: encoding/gob
cpu: AMD Ryzen 7 PRO 5850U with Radeon Graphics
│     old     │                new                 │
│   sec/op    │   sec/op     vs base               │
EndToEndPipe-16   730.9n ± 5%   741.6n ± 5%       ~ (p=0.529 n=10)
EncodingGob       173.7µ ± 0%   171.1µ ± 0%  -1.46% (p=0.000 n=10)
geomean           11.27µ        11.26µ       -0.01%

│     old      │                  new                   │
│     B/op     │     B/op      vs base                  │
EndToEndPipe-16   1.766Ki ± 0%   1.766Ki ± 0%        ~ (p=1.000 n=10) ¹
EncodingGob       38.27Ki ± 0%   34.30Ki ± 0%  -10.38% (p=0.000 n=10)
geomean           8.221Ki        7.782Ki        -5.33%
¹ all samples are equal

│    old     │                 new                 │
│ allocs/op  │ allocs/op   vs base                 │
EndToEndPipe-16   2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=10) ¹
EncodingGob       642.0 ± 0%   615.0 ± 0%  -4.21% (p=0.000 n=10)
geomean           35.83        35.07       -2.13%
¹ all samples are equal

Change-Id: I852a799834d2e9b7b915da74e871a4052d13892e
Reviewed-on: https://go-review.googlesource.com/c/go/+/479400
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Rob Pike <r@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/encoding/gob/type.go