1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:44:43 -07:00
go/internal/lsp
Ian Cottrell ae19ec7143 internal/telemetry: use atomics to get the exporter
We change the main exporter to be stored and fetched using atomics rather
than aquiring a mutex for a mild (but significant in the disabled case) speedup.
Also has the benefit of not holding a global lock over all telemetry operations.

benchstat of logging benchmatks before and after:

name                 old time/op    new time/op    delta
Baseline-8              329ns ± 2%     327ns ± 2%     ~     (p=0.181 n=19+17)
LoggingNoExporter-8    3.08µs ± 3%    2.42µs ± 2%  -21.42%  (p=0.000 n=20+19)
Logging-8              13.7µs ± 2%    13.2µs ± 1%   -3.49%  (p=0.000 n=19+19)
LoggingStdlib-8        5.39µs ± 3%    5.41µs ± 2%     ~     (p=0.177 n=19+20)

This is a replacement for https://go-review.googlesource.com/c/tools/+/212244
but built on the single exporter principle rather than the exporter list.

Change-Id: Icc99319c4357e0bcb63386c64372a733e8a76796
Reviewed-on: https://go-review.googlesource.com/c/tools/+/221218
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
2020-03-03 22:56:03 +00:00
..
browser
cache internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
cmd internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
debug internal/telemetry: use atomics to get the exporter 2020-03-03 22:56:03 +00:00
diff internal/span,lsp: disambiguate URIs, DocumentURIs, and paths 2020-02-14 22:51:03 +00:00
fake internal/lsp/regtest: implement formatting and organizeImports 2020-03-02 19:16:53 +00:00
fuzzy internal/lsp: make golint happy 2019-12-23 18:17:04 +00:00
helper internal/lsp: change to helper.go to output a formatted file 2020-01-31 20:35:38 +00:00
lsprpc internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
mod internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
protocol internal/telemetry: removing the concept of exporter lists 2020-02-26 21:51:01 +00:00
regtest internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
snippet
source internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
telemetry internal/lsp: log snapshot IDs, don't log context cancellation 2020-01-27 19:20:44 +00:00
testdata internal/lsp: fix active param in signature help 2020-03-03 19:47:17 +00:00
tests internal/lsp: add an upgrade all dependencies codelens 2020-03-02 21:30:18 +00:00
code_action.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
command.go internal/lsp: add an upgrade all dependencies codelens 2020-03-02 21:30:18 +00:00
completion_test.go internal/span,lsp: disambiguate URIs, DocumentURIs, and paths 2020-02-14 22:51:03 +00:00
completion.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
definition.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
diagnostics.go internal/lsp: mitigate possiibility of a slow code action 2020-02-26 22:45:02 +00:00
folding_range.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
format.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
general.go internal/lsp/lsprpc: clean up client session on disconnection 2020-02-24 23:23:05 +00:00
highlight.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
hover.go internal/lsp: support textDocument/hover for .mod extension 2020-02-26 15:59:49 +00:00
implementation.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
link.go internal/lsp: support textDocument/documentLink for .mod extension 2020-02-26 15:45:04 +00:00
lsp_test.go internal/lsp: move the debug.Instance onto the Context 2020-03-03 22:54:53 +00:00
references.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
rename.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
reset_golden.sh
server_gen.go internal/lsp: change return type of PrepareRename to *Range 2020-02-13 20:00:52 +00:00
server.go internal/lsp: add an upgrade all dependencies codelens 2020-03-02 21:30:18 +00:00
signature_help.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
symbols.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
text_synchronization.go internal/lsp: clear diagnostics for deleted files 2020-02-19 20:26:41 +00:00
workspace_symbol.go internal/lsp: add support for workspace symbol 2020-02-05 19:03:17 +00:00
workspace.go internal/lsp: generate boilerplate stubs for type Server 2020-01-24 14:41:51 +00:00