mirror of https://github.com/golang/go.git
I felt guilty about leaving 2% on the table in CL 108878, so I thought I'd get it a different way. Teach readFile to accept a re-usable bytes.Buffer to read into, to reduce the amount of garbage created. To limit the possible memory impact of giant files, only re-use the buffer for the duration of a single package. Even that is enough to help. name old time/op new time/op delta Referrers 4.67s ± 3% 4.58s ± 2% -1.96% (p=0.029 n=10+10) name old user-time/op new user-time/op delta Referrers 16.5s ± 3% 15.8s ± 1% -4.39% (p=0.000 n=10+8) name old sys-time/op new sys-time/op delta Referrers 16.1s ± 3% 15.9s ± 3% ~ (p=0.218 n=10+10) This work supported by Sourcegraph. Change-Id: I594ef25c0fd5ccb766ff5b98dbbd1a75a7a4f957 Reviewed-on: https://go-review.googlesource.com/108935 Reviewed-by: Alan Donovan <adonovan@google.com> |
||
|---|---|---|
| .. | ||
| serial | ||
| testdata/src | ||
| callees.go | ||
| callers.go | ||
| callstack.go | ||
| definition.go | ||
| describe.go | ||
| freevars.go | ||
| guru.go | ||
| guru_test.go | ||
| implements.go | ||
| isAlias18.go | ||
| isAlias19.go | ||
| main.go | ||
| peers.go | ||
| pointsto.go | ||
| pos.go | ||
| referrers.go | ||
| unit_test.go | ||
| what.go | ||
| whicherrs.go | ||