зеркало из https://github.com/golang/tools.git
c35476fcce
Total CPU used by gopls is a critical metric for our users, yet was not previously captured in any benchmark. This change uses the new pprof parsing utilities added in CL 507885 to instrument a cpu_seconds benchmark metric, for now just associated with the DidChange benchmark. This is achieved via new LSP commands that start and stop a profile. The benchmark runner uses these commands to bracket the critical section of the benchmark, then parses the resulting profile for its total sampled CPU. Additionally, the benchmark runner is updated to actually check for the existence of the custom command before instrumenting the new metric. This allows it to be compatible with testing older versions of gopls. The same technique is adopted for memstats metrics. I only instrumented BenchmarkDidChange, because the profile file schema is getting truly out of hand. I'll try to simplify it before instrumenting all the other benchmarks, but want to do that in a separate CL. For golang/go#60926 Change-Id: Ia082bad49e8d30c567a7c07e050511d49b93738b Reviewed-on: https://go-review.googlesource.com/c/tools/+/508449 gopls-CI: kokoro <noreply+kokoro@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> |
||
---|---|---|
.. | ||
analysisinternal | ||
apidiff | ||
bisect | ||
cmd/deadcode | ||
diff | ||
diffp | ||
event | ||
facts | ||
fakenet | ||
fastwalk | ||
fuzzy | ||
gcimporter | ||
gocommand | ||
gopathwalk | ||
goroot | ||
imports | ||
jsonrpc2 | ||
jsonrpc2_v2 | ||
memoize | ||
packagesinternal | ||
persistent | ||
pkgbits | ||
pprof | ||
proxydir | ||
robustio | ||
stack | ||
testenv | ||
tokeninternal | ||
tool | ||
typeparams | ||
typesinternal | ||
xcontext |