Skip to content

Commit b46ffa9

Browse files
authored
[Turbopack] reduce the number of spans created in task completion (#75437)
### What? Skip some methods for tasks without children. Reduces number of spans created in tracing.
1 parent 23e8640 commit b46ffa9

File tree

1 file changed

+19
-13
lines changed
  • turbopack/crates/turbo-tasks-backend/src/backend

1 file changed

+19
-13
lines changed

turbopack/crates/turbo-tasks-backend/src/backend/mod.rs

+19-13
Original file line numberDiff line numberDiff line change
@@ -1226,12 +1226,16 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
12261226
let mut removed_data = Vec::new();
12271227
let mut old_edges = Vec::new();
12281228

1229+
let has_children = !new_children.is_empty();
1230+
12291231
// Prepare all new children
1230-
prepare_new_children(task_id, &mut task, &new_children, &mut queue);
1232+
if has_children {
1233+
prepare_new_children(task_id, &mut task, &new_children, &mut queue);
1234+
}
12311235

12321236
// Filter actual new children
12331237
for old_child in iter_many!(task, Child { task } => task) {
1234-
if !new_children.remove(&old_child) {
1238+
if !has_children || !new_children.remove(&old_child) {
12351239
old_edges.push(OutdatedEdge::Child(old_child));
12361240
}
12371241
}
@@ -1296,7 +1300,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
12961300

12971301
drop(task);
12981302

1299-
{
1303+
if !queue.is_empty() || !old_edges.is_empty() {
13001304
let _span = tracing::trace_span!("remove old edges and prepare new children").entered();
13011305
// Remove outdated edges first, before removing in_progress+dirty flag.
13021306
// We need to make sure all outdated edges are removed before the task can potentially
@@ -1344,19 +1348,21 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
13441348

13451349
let mut queue = AggregationUpdateQueue::new();
13461350

1347-
let has_active_count =
1348-
get!(task, Activeness).map_or(false, |activeness| activeness.active_counter > 0);
1349-
connect_children(
1350-
task_id,
1351-
&mut task,
1352-
new_children,
1353-
&mut queue,
1354-
has_active_count,
1355-
);
1351+
if has_children {
1352+
let has_active_count =
1353+
get!(task, Activeness).map_or(false, |activeness| activeness.active_counter > 0);
1354+
connect_children(
1355+
task_id,
1356+
&mut task,
1357+
new_children,
1358+
&mut queue,
1359+
has_active_count,
1360+
);
1361+
}
13561362

13571363
drop(task);
13581364

1359-
{
1365+
if has_children {
13601366
let _span = tracing::trace_span!("connect new children").entered();
13611367
queue.execute(&mut ctx);
13621368
}

0 commit comments

Comments
 (0)