go/internal/lsp/cache
Alan Donovan e9870152b0 internal/lsp/cache: symbolize in parallel
This change parallelizes the buildSymbolHandle().Get computation for
each file, with 2xGOMAXPROCS goroutines, since it is a mix of I/O (read)
and CPU (parse). (The symbolize AST walk happens in other goroutines.)

This reduces the time for the source.WorkspaceSymbols trace task
applied to kubernetes from 3981ms to 630ms (6x faster).

Change-Id: I5f1ee4afc2f6b2dd752791a30d33a21f50180a9c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/412818
Reviewed-by: Robert Findley <rfindley@google.com>
2022-06-16 20:50:23 +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 Revert "internal/lsp/cache: reduce critical sections" 2022-06-16 15:42:24 +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