Skip to content

Commit bcb4449

Browse files
mischnictimneutkens
authored andcommitted
Turbopack: more traces
1 parent fa214c7 commit bcb4449

File tree

2 files changed

+44
-33
lines changed

2 files changed

+44
-33
lines changed

turbopack/crates/turbopack-cli/src/build/mod.rs

+43-33
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
use std::{
22
env::current_dir,
33
mem::forget,
4-
path::{PathBuf, MAIN_SEPARATOR},
4+
path::{MAIN_SEPARATOR, PathBuf},
55
sync::Arc,
66
};
77

8-
use anyhow::{bail, Context, Result};
8+
use anyhow::{Context, Result, bail};
99
use rustc_hash::FxHashSet;
1010
use turbo_rcstr::RcStr;
1111
use turbo_tasks::{
12-
apply_effects, ReadConsistency, ResolvedVc, TransientInstance, TryJoinIterExt, TurboTasks,
13-
Value, Vc,
12+
ReadConsistency, ResolvedVc, TransientInstance, TryJoinIterExt, TurboTasks, Value, Vc,
13+
apply_effects,
1414
};
1515
use turbo_tasks_backend::{
16-
noop_backing_storage, BackendOptions, NoopBackingStorage, TurboTasksBackend,
16+
BackendOptions, NoopBackingStorage, TurboTasksBackend, noop_backing_storage,
1717
};
1818
use turbo_tasks_fs::FileSystem;
1919
use turbopack::global_module_ids::get_global_module_id_strategy;
@@ -22,16 +22,16 @@ use turbopack_cli_utils::issue::{ConsoleUi, LogOptions};
2222
use turbopack_core::{
2323
asset::Asset,
2424
chunk::{
25-
availability_info::AvailabilityInfo, ChunkingConfig, ChunkingContext, EvaluatableAsset,
26-
EvaluatableAssets, MinifyType, SourceMapsType,
25+
ChunkingConfig, ChunkingContext, EvaluatableAsset, EvaluatableAssets, MinifyType,
26+
SourceMapsType, availability_info::AvailabilityInfo,
2727
},
2828
environment::{BrowserEnvironment, Environment, ExecutionEnvironment, NodeJsEnvironment},
2929
ident::AssetIdent,
30-
issue::{handle_issues, IssueReporter, IssueSeverity},
30+
issue::{IssueReporter, IssueSeverity, handle_issues},
3131
module::Module,
3232
module_graph::{
33-
chunk_group_info::{ChunkGroup, ChunkGroupEntry},
3433
ModuleGraph,
34+
chunk_group_info::{ChunkGroup, ChunkGroupEntry},
3535
},
3636
output::{OutputAsset, OutputAssets},
3737
reference::all_assets_from_entries,
@@ -48,9 +48,9 @@ use turbopack_nodejs::NodeJsChunkingContext;
4848

4949
use crate::{
5050
arguments::{BuildArguments, Target},
51-
contexts::{get_client_asset_context, get_client_compile_time_info, NodeEnv},
51+
contexts::{NodeEnv, get_client_asset_context, get_client_compile_time_info},
5252
util::{
53-
normalize_dirs, normalize_entries, output_fs, project_fs, EntryRequest, NormalizedDirs,
53+
EntryRequest, NormalizedDirs, normalize_dirs, normalize_entries, output_fs, project_fs,
5454
},
5555
};
5656

@@ -149,7 +149,9 @@ impl TurbopackBuildBuilder {
149149
// Await the result to propagate any errors.
150150
build_result_op.read_strongly_consistent().await?;
151151

152-
apply_effects(build_result_op).await?;
152+
apply_effects(build_result_op)
153+
.instrument(tracing::info_span!("apply effects"))
154+
.await?;
153155

154156
let issue_reporter: Vc<Box<dyn IssueReporter>> =
155157
Vc::upcast(ConsoleUi::new(TransientInstance::new(LogOptions {
@@ -270,26 +272,30 @@ async fn build_internal(
270272

271273
let origin = PlainResolveOrigin::new(asset_context, project_fs.root().join("_".into()));
272274
let project_dir = &project_dir;
273-
let entries = entry_requests
274-
.into_iter()
275-
.map(|request_vc| async move {
276-
let ty = Value::new(ReferenceType::Entry(EntryReferenceSubType::Undefined));
277-
let request = request_vc.await?;
278-
origin
279-
.resolve_asset(request_vc, origin.resolve_options(ty.clone()), ty)
280-
.await?
281-
.first_module()
282-
.await?
283-
.with_context(|| {
284-
format!(
285-
"Unable to resolve entry {} from directory {}.",
286-
request.request().unwrap(),
287-
project_dir
288-
)
289-
})
290-
})
291-
.try_join()
292-
.await?;
275+
let entries = async move {
276+
entry_requests
277+
.into_iter()
278+
.map(|request_vc| async move {
279+
let ty = Value::new(ReferenceType::Entry(EntryReferenceSubType::Undefined));
280+
let request = request_vc.await?;
281+
origin
282+
.resolve_asset(request_vc, origin.resolve_options(ty.clone()), ty)
283+
.await?
284+
.first_module()
285+
.await?
286+
.with_context(|| {
287+
format!(
288+
"Unable to resolve entry {} from directory {}.",
289+
request.request().unwrap(),
290+
project_dir
291+
)
292+
})
293+
})
294+
.try_join()
295+
.await
296+
}
297+
.instrument(tracing::info_span!("resolve entries"))
298+
.await?;
293299

294300
let module_graph =
295301
ModuleGraph::from_modules(Vc::cell(vec![ChunkGroupEntry::Entry(entries.clone())]));
@@ -445,7 +451,11 @@ async fn build_internal(
445451

446452
let mut chunks: FxHashSet<ResolvedVc<Box<dyn OutputAsset>>> = FxHashSet::default();
447453
for chunk_group in entry_chunk_groups {
448-
chunks.extend(&*all_assets_from_entries(*chunk_group).await?);
454+
chunks.extend(
455+
&*async move { all_assets_from_entries(*chunk_group).await }
456+
.instrument(tracing::info_span!("list chunks"))
457+
.await?,
458+
);
449459
}
450460

451461
chunks

turbopack/crates/turbopack-cli/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#![feature(min_specialization)]
33
#![feature(arbitrary_self_types)]
44
#![feature(arbitrary_self_types_pointers)]
5+
#![feature(async_closure)]
56

67
pub mod arguments;
78
pub mod build;

0 commit comments

Comments
 (0)