diff options
| author | Cherry Mui <cherryyz@google.com> | 2023-05-01 12:54:27 -0400 |
|---|---|---|
| committer | Cherry Mui <cherryyz@google.com> | 2023-05-02 17:29:09 +0000 |
| commit | 630ef2edc2a7f6138c9eb0ed8eb8216a32ed0339 (patch) | |
| tree | 6a3e107e2d4332e6a04caae2e722ef166e592814 /src/cmd/link/internal/ld/deadcode.go | |
| parent | fa4781a41502b283b270f7d83e2678152fd01682 (diff) | |
| download | go-630ef2edc2a7f6138c9eb0ed8eb8216a32ed0339.tar.xz | |
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>
Diffstat (limited to 'src/cmd/link/internal/ld/deadcode.go')
| -rw-r--r-- | src/cmd/link/internal/ld/deadcode.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/link/internal/ld/deadcode.go b/src/cmd/link/internal/ld/deadcode.go index c80bacd92c..e7028d3b54 100644 --- a/src/cmd/link/internal/ld/deadcode.go +++ b/src/cmd/link/internal/ld/deadcode.go @@ -487,7 +487,7 @@ func (d *deadcodePass) decodeIfaceMethod(ldr *loader.Loader, arch *sys.Arch, sym // Decode the method name stored in symbol symIdx. The symbol should contain just the bytes of a method name. func (d *deadcodePass) decodeGenericIfaceMethod(ldr *loader.Loader, symIdx loader.Sym) string { - return string(ldr.Data(symIdx)) + return ldr.DataString(symIdx) } func (d *deadcodePass) decodetypeMethods(ldr *loader.Loader, arch *sys.Arch, symIdx loader.Sym, relocs *loader.Relocs) []methodsig { |
