1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00

perf(lsp): add performance marks for TSC requests (#21383)

This should help us get a better picture where most of the time is spent
(the TSC or the surrounding Rust code).
This commit is contained in:
Bartek Iwańczuk 2023-11-29 22:18:23 +01:00 committed by GitHub
parent ae327d0a83
commit 6718be87c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View file

@ -208,6 +208,7 @@ fn normalize_diagnostic(
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct TsServer { pub struct TsServer {
performance: Arc<Performance>,
sender: mpsc::UnboundedSender<Request>, sender: mpsc::UnboundedSender<Request>,
specifier_map: Arc<TscSpecifierMap>, specifier_map: Arc<TscSpecifierMap>,
} }
@ -217,8 +218,9 @@ impl TsServer {
let specifier_map = Arc::new(TscSpecifierMap::new()); let specifier_map = Arc::new(TscSpecifierMap::new());
let specifier_map_ = specifier_map.clone(); let specifier_map_ = specifier_map.clone();
let (tx, mut rx) = mpsc::unbounded_channel::<Request>(); let (tx, mut rx) = mpsc::unbounded_channel::<Request>();
let perf = performance.clone();
let _join_handle = thread::spawn(move || { let _join_handle = thread::spawn(move || {
let mut ts_runtime = js_runtime(performance, cache, specifier_map_); let mut ts_runtime = js_runtime(perf, cache, specifier_map_);
let runtime = create_basic_runtime(); let runtime = create_basic_runtime();
runtime.block_on(async { runtime.block_on(async {
@ -238,6 +240,7 @@ impl TsServer {
}); });
Self { Self {
performance,
sender: tx, sender: tx,
specifier_map, specifier_map,
} }
@ -946,9 +949,14 @@ impl TsServer {
where where
R: de::DeserializeOwned, R: de::DeserializeOwned,
{ {
self let mark = self
.performance
.mark(format!("tsc {}", req.method), None::<()>);
let r = self
.request_with_cancellation(snapshot, req, Default::default()) .request_with_cancellation(snapshot, req, Default::default())
.await .await;
self.performance.measure(mark);
r
} }
async fn request_with_cancellation<R>( async fn request_with_cancellation<R>(

View file

@ -8309,6 +8309,10 @@ fn lsp_performance() {
"op_load", "op_load",
"request", "request",
"testing_update", "testing_update",
"tsc $configure",
"tsc $getAssets",
"tsc $getSupportedCodeFixes",
"tsc getQuickInfoAtPosition",
"update_cache", "update_cache",
"update_diagnostics_deps", "update_diagnostics_deps",
"update_diagnostics_lint", "update_diagnostics_lint",