mirror of
https://github.com/golang/go
synced 2024-11-24 17:20:12 -07:00
cmd/link: Preallocate Lsym map
Preallocate ~2MB for Lsym map (size calculation from http://play.golang.org/p/9L7F5naXRr). Reduces best of 10 link time of cmd/go by ~4%. On cmd/go max resident size unaffected, on println hello world max resident size grows by 4mb from 18mb->22mb. Performance improves in both cases. tip: real 0m1.283s user 0m1.502s sys 0m0.144s this: real 0m1.341s user 0m1.598s sys 0m0.136s Change-Id: I4a95e45fe552f1f64f53e868421b9f45a34f8b96 Reviewed-on: https://go-review.googlesource.com/19979 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
21f2cb60ea
commit
e0b04fa508
@ -58,7 +58,8 @@ var headers = []struct {
|
||||
|
||||
func linknew(arch *LinkArch) *Link {
|
||||
ctxt := new(Link)
|
||||
ctxt.Hash = make(map[symVer]*LSym)
|
||||
// Preallocate about 2mb for hash
|
||||
ctxt.Hash = make(map[symVer]*LSym, 100000)
|
||||
ctxt.Arch = arch
|
||||
ctxt.Version = obj.HistVersion
|
||||
ctxt.Goroot = obj.Getgoroot()
|
||||
|
Loading…
Reference in New Issue
Block a user