]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/link: remove allocation in decoding type name
authorCherry Mui <cherryyz@google.com>
Mon, 1 May 2023 16:54:27 +0000 (12:54 -0400)
committerCherry Mui <cherryyz@google.com>
Tue, 2 May 2023 17:29:09 +0000 (17:29 +0000)
commit630ef2edc2a7f6138c9eb0ed8eb8216a32ed0339
tree6a3e107e2d4332e6a04caae2e722ef166e592814
parentfa4781a41502b283b270f7d83e2678152fd01682
cmd/link: remove allocation in decoding type name

The type name symbol is always from a Go object file and we never
change it. Convert the data to string using unsafe conversion
without allocation.

Linking cmd/go (on macOS/amd64),

name           old alloc/op   new alloc/op   delta
Deadcode_GC      1.25MB ± 0%    1.17MB ± 0%   -6.29%  (p=0.000 n=20+20)

name           old allocs/op  new allocs/op  delta
Deadcode_GC       8.98k ± 0%     0.10k ± 3%  -98.91%  (p=0.000 n=20+20)

Change-Id: I33117ad1f991e4f14ce0b38cceec50b041e3c0a4
Reviewed-on: https://go-review.googlesource.com/c/go/+/490915
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/internal/goobj/objfile.go
src/cmd/link/internal/ld/deadcode.go
src/cmd/link/internal/ld/decodesym.go
src/cmd/link/internal/loader/loader.go