Skip to content

Commit 9dd85ab

Browse files
committed
fix: use Instant for timing and add per-pattern glob expansion logging
1 parent 7f5d753 commit 9dd85ab

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

crates/pet/src/jsonrpc.rs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ use std::{
4646
path::PathBuf,
4747
sync::{Arc, RwLock},
4848
thread,
49-
time::SystemTime,
49+
time::{Instant, SystemTime},
5050
};
5151
use tracing::info_span;
5252

@@ -120,26 +120,38 @@ pub fn handle_configure(context: Arc<Context>, id: u32, params: Value) {
120120
info!("Received configure request");
121121
// Start in a new thread, we can have multiple requests.
122122
thread::spawn(move || {
123-
let now = SystemTime::now();
123+
let now = Instant::now();
124124

125125
// Expand glob patterns before acquiring the write lock so we
126126
// don't block readers/writers while traversing the filesystem.
127127
let workspace_directories = configure_options.workspace_directories.map(|dirs| {
128-
trace!("Expanding workspace directory patterns: {:?}", dirs);
129-
expand_glob_patterns(&dirs)
128+
let start = Instant::now();
129+
let result: Vec<PathBuf> = expand_glob_patterns(&dirs)
130130
.into_iter()
131131
.filter(|p| p.is_dir())
132-
.collect()
132+
.collect();
133+
trace!(
134+
"Expanded workspace directory patterns ({:?}) in {:?}",
135+
dirs,
136+
start.elapsed()
137+
);
138+
result
133139
});
134140
let environment_directories =
135141
configure_options.environment_directories.map(|dirs| {
136-
trace!("Expanding environment directory patterns: {:?}", dirs);
137-
expand_glob_patterns(&dirs)
142+
let start = Instant::now();
143+
let result: Vec<PathBuf> = expand_glob_patterns(&dirs)
138144
.into_iter()
139145
.filter(|p| p.is_dir())
140-
.collect()
146+
.collect();
147+
trace!(
148+
"Expanded environment directory patterns ({:?}) in {:?}",
149+
dirs,
150+
start.elapsed()
151+
);
152+
result
141153
});
142-
let glob_elapsed = now.elapsed().unwrap_or_default();
154+
let glob_elapsed = now.elapsed();
143155
trace!("Glob expansion completed in {:?}", glob_elapsed);
144156
if glob_elapsed >= GLOB_EXPANSION_WARN_THRESHOLD {
145157
warn!(
@@ -166,10 +178,7 @@ pub fn handle_configure(context: Arc<Context>, id: u32, params: Value) {
166178
for locator in context.locators.iter() {
167179
locator.configure(&config);
168180
}
169-
info!(
170-
"Configure completed in {:?}",
171-
now.elapsed().unwrap_or_default()
172-
);
181+
info!("Configure completed in {:?}", now.elapsed());
173182
send_reply(id, None::<()>);
174183
});
175184
}
@@ -414,7 +423,7 @@ pub fn handle_find(context: Arc<Context>, id: u32, params: Value) {
414423
thread::spawn(
415424
move || match serde_json::from_value::<FindOptions>(params.clone()) {
416425
Ok(find_options) => {
417-
let now = SystemTime::now();
426+
let now = Instant::now();
418427
trace!("Finding environments in {:?}", find_options.search_path);
419428
let global_env_search_paths: Vec<PathBuf> =
420429
get_search_paths_from_env_variables(context.os_environment.as_ref());
@@ -452,7 +461,7 @@ pub fn handle_find(context: Arc<Context>, id: u32, params: Value) {
452461
.clone();
453462
trace!(
454463
"Find completed in {:?}, found {} environments in {:?}",
455-
now.elapsed().unwrap_or_default(),
464+
now.elapsed(),
456465
envs.len(),
457466
find_options.search_path
458467
);

0 commit comments

Comments
 (0)