mirror of
https://github.com/golang/go
synced 2024-10-01 01:18:32 -06:00
5c8013c561
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_test.go | ||
guru.go | ||
implements.go | ||
isAlias18.go | ||
isAlias19.go | ||
main.go | ||
peers.go | ||
pointsto.go | ||
pos.go | ||
referrers.go | ||
unit_test.go | ||
what.go | ||
whicherrs.go |