go/internal/lsp/cache
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
..
analysis.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
cache.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
check.go Revert "internal/lsp/cache: reduce critical sections" 2022-06-16 15:42:24 +00:00
debug.go internal/lsp/cache: build a new metadata graph on load 2022-06-16 15:50:09 +00:00
error_test.go internal/lsp/cache: split up sourceDiagnostics 2021-03-02 02:05:13 +00:00
errors.go internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
graph.go internal/lsp/cache: use metadataGraph.Clone in snapshot.clone 2022-06-16 18:19:30 +00:00
imports.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
keys.go internal/lsp: decouple client and server debug 2020-06-11 13:49:48 +00:00
load.go internal/lsp/cache: clone the metadata graph when clearing ShouldLoad 2022-06-16 18:23:17 +00:00
metadata.go internal/lsp/cache: derive workspace packages from metadata 2022-06-16 15:49:38 +00:00
mod.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
mod_tidy.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
os_darwin.go internal/lsp/cache: clarify an error message about mismatching casing 2021-08-03 17:18:10 +00:00
os_windows.go internal/lsp/cache: clarify an error message about mismatching casing 2021-08-03 17:18:10 +00:00
parse.go internal/lsp/debug: reduce critical sections in trace 2022-06-17 20:37:28 +00:00
parse_test.go internal/lsp/cache: trim more stuff in ParseExported mode 2021-05-11 17:48:41 +00:00
parsemode_go116.go internal/lsp/cache: use cached parsed files for symbols, if available 2022-05-09 17:04:06 +00:00
parsemode_go117.go internal/lsp/cache: use cached parsed files for symbols, if available 2022-05-09 17:04:06 +00:00
pkg.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
session.go internal/lsp/cache: use metadataGraph.Clone in snapshot.clone 2022-06-16 18:19:30 +00:00
snapshot.go internal/lsp/cache: symbolize in parallel 2022-06-16 20:50:23 +00:00
symbols.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
view.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
view_test.go internal/lsp/cache: always consider go.work files for ws expansion 2022-03-07 16:11:49 +00:00
workspace.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
workspace_test.go internal/lsp/cache: construct workspace even when go.work has error 2022-03-03 21:30:30 +00:00