summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-12-11 17:33:56 +0100
committerGitHub <noreply@github.com>2023-12-11 17:33:56 +0100
commit88566cee72b4762e0742fdde3f2c56b8a4d0bf03 (patch)
tree954112b236bb57b9e0a9303e301c56695a2fd1d9 /cli/lsp/language_server.rs
parent98121de5be6f948740c5869095381d6e7a18b9ea (diff)
perf(lsp): instrument all ops with performance marks (#21536)
Adds performance measurements for all ops used by the LSP. Also changes output of "Language server status" page to include more precise information. Current suspicion is that computing "script version" takes a long time for some users.
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 225b46eac..9b531cc40 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -3809,15 +3809,11 @@ impl Inner {
.unwrap();
contents
.push_str("\n## Performance\n\n|Name|Duration|Count|\n|---|---|---|\n");
- let mut averages = self.performance.averages();
- averages.sort();
- for average in averages {
- writeln!(
- contents,
- "|{}|{}ms|{}|",
- average.name, average.average_duration, average.count
- )
- .unwrap();
+ let mut averages = self.performance.averages_as_f64();
+ averages.sort_by(|a, b| a.0.cmp(&b.0));
+ for (name, count, average_duration) in averages {
+ writeln!(contents, "|{}|{}ms|{}|", name, average_duration, count)
+ .unwrap();
}
Some(contents)
} else {