aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/stack1.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2014-12-22 22:31:55 +0300
committerDmitry Vyukov <dvyukov@google.com>2015-01-28 08:40:26 +0000
commit67f8a8131648346f6bf9b525cd989bd2f7293b3f (patch)
treedd675951094ea079abcad956bd92fcbf1406f44f /src/runtime/stack1.go
parentbed884e8b9ff1657fbd4f8f52d0c7a18b6445e00 (diff)
downloadgo-67f8a8131648346f6bf9b525cd989bd2f7293b3f.tar.xz
reflect: cache call frames
Call frame allocations can account for significant portion of all allocations in a program, if call is executed in an inner loop (e.g. to process every line in a log). On the other hand, the allocation is easy to remove using sync.Pool since the allocation is strictly scoped. benchmark old ns/op new ns/op delta BenchmarkCall 634 338 -46.69% BenchmarkCall-4 496 167 -66.33% benchmark old allocs new allocs delta BenchmarkCall 1 0 -100.00% BenchmarkCall-4 1 0 -100.00% Update #7818 Change-Id: Icf60cce0a9be82e6171f0c0bd80dee2393db54a7 Reviewed-on: https://go-review.googlesource.com/1954 Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/stack1.go')
0 files changed, 0 insertions, 0 deletions