go/internal/lsp/debug
Alan Donovan 381ac87aae internal/lsp/debug: reduce critical sections in trace
This change reduces the sizes of the critical section
in traces.ProcessEvent, in particular moving allocations
ahead of Lock. This reduces the contention according
to the trace profiler.

See https://go-review.googlesource.com/c/go/+/411909 for
another reduction in contention. The largest remaining
contention is Handle.Get, which thousands of goroutines
wait for because we initiate typechecking top down.

(Second attempt at https://go-review.googlesource.com/c/tools/+/411910,
reverted in https://go-review.googlesource.com/c/tools/+/412694.
The changes to Generation.Bind have been dropped.)

Change-Id: Ia9050c97bd12d2d75055f8d1dfcda3ef1f5ad334
Reviewed-on: https://go-review.googlesource.com/c/tools/+/412820
Run-TryBot: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2022-06-17 20:37:28 +00:00
..
log internal/lsp/debug: hook runtime/trace into event spans 2020-12-11 18:50:31 +00:00
tag internal/lsp/bug: add a package for bug reporting 2022-05-16 14:45:30 +00:00
buildinfo_go1.12.go internal/lsp/debug: add go version to gopls version output 2022-02-07 15:39:03 +00:00
buildinfo_go1.18.go internal/lsp/debug: add go version to gopls version output 2022-02-07 15:39:03 +00:00
info.go internal/lsp/debug: add go version to gopls version output 2022-02-07 15:39:03 +00:00
info_test.go internal/lsp/debug: add go version to gopls version output 2022-02-07 15:39:03 +00:00
metrics.go internal/event: move event/core.Tag to event/label.Label 2020-04-23 18:13:33 +00:00
rpc.go gopls/test: add type checking for debug server templates 2020-12-22 16:32:15 +00:00
serve.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
trace.go internal/lsp/debug: reduce critical sections in trace 2022-06-17 20:37:28 +00:00